Автоматически сгенерированный код

Я работаю над отладкой некоторого кода и замечаю кучу автоматизированных сгенерированных методов и объектов.

В верхней части кода для них я нахожу следующий комментарий:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.42
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

Как выяснить, что сгенерировал код? Мое любопытство улучшило меня по этому поводу, поэтому я спрашиваю. Я искал части комментариев в Google и не нашел ничего конкретного.

Ответ 1

    //------------------------------------------------------------------------------ 
    // <auto-generated> 
    // This code was generated by a tool. 
    // Runtime Version:2.0.50727.42 
    // 
    // Changes to this file may cause incorrect behavior and will be lost if 
    // the code is regenerated. 
    // </auto-generated> 
    //------------------------------------------------------------------------------



namespace FirstWeb 
{ 
    public partial class _Default 
    { 

        /// <summary> 
        /// form1 control. 
        /// </summary> 
        /// <remarks> 
        /// Auto-generated field. 
        /// To modify move field declaration from designer file to code-behind file. 
        /// </remarks> 
        protected global::System.Web.UI.HtmlControls.HtmlForm form1; 
    } 
} 

Вы не измените этот автоматически сгенерированный файл С#. Когда вы добавляете элементы управления ASP.NET на страницу, этот файл растет с дополнительными объявлениями. В старых версиях С# (до версии 2.0) и Visual Studio (до версии 2005) этот код будет также в файле Default.aspx.cs.

С введением частичных классов в С# код, принадлежащий одному классу, можно разделить на несколько файлов. Здесь вы видите "public partial class _Default", который используется для хранения кода , сгенерированного дизайнером Visual Studio. Вы увидите ту же подпись класса в файле Default.aspx.cs(вы используйте это, чтобы написать свой собственный код).

Итак, разработчик (вы) и разработчик (Visual Studio) могут работать независимо друг от друга, не перешагивая друг на друга.

Это взято из Первая веб-программа (веб-проект) в С# Explained

Ответ 2

Он будет полностью зависеть от кода.

Предположительно вы знаете класс, который вы отлаживаете, будь то часть ORM, часть сгенерированного прокси-сервера веб-службы и т.д. Это ключевой бит информации.

Ответ 4

Это также может быть файл .Designer.cs, созданный ResXFileCodeGenerator, который генерирует сильно типизированные оболочки для файлов .resx.

Ответ 5

Ну, что это за код? Большинство инструментов MS включают этот заголовок. xsd.exe делает, sqlmetal (LINQ-to-SQL) делает и т.д. Попробуйте посмотреть несколько строк... например, быстрый xsd-тест для меня показывает второй блок комментариев:

// 
// This source code was auto-generated by xsd, Version=2.0.50727.3038.
// 

Но этого не существует в коде LINQ-to-SQL...; - (

Ответ 6

Я думаю, что этот код был сгенерирован движком Linq to SQL.

вы можете изменить его, если вы понимаете, как кодировать с помощью Sql Enities

Ответ 7

Эти комментарии точно соответствуют тем, которые были найдены в некоторых моих справочных файлах службы. Это сгенерированные прокси файлы для служб WCF, поэтому, возможно, ваш код также находится в этой области.

Если вы не видите эти файлы в обозревателе решений, нажмите "Показать все файлы", и они будут отображаться как .cs файлы в ссылках на службы node.

Ответ 8

Это точный комментарий, который генерируется System.CodeDom при генерации файла из всего блока компиляции кода.

Ответ 9

Инструмент SVCUTIL от Microsoft (http://msdn.microsoft.com/en-us/library/aa347733.aspx) будет генерировать файлы исходного кода с этим комментарием в верхней части каждого файла, не идентифицируя себя как инструмент, который сгенерировал файл.