自动生成的代码

时间:2009-01-29 13:50:36

标签: c# visual-studio

我正在调试一些代码并注意到一堆自动生成的方法和对象。

在这些代码的顶部,我找到以下注释:

//------------------------------------------------------------------------------
// <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上查找了部分评论,但没有找到具体内容。

9 个答案:

答案 0 :(得分:2)

完全取决于代码是什么。

据推测,您知道正在调试的类 - 它是否是ORM的一部分,是Web服务生成代理的一部分等。这是关键信息。

答案 1 :(得分:2)

    //------------------------------------------------------------------------------ 
    // <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; 
    } 
} 

您不会更改此自动生成的C#文件。当您继续向页面添加ASP.NET控件时,此文件随附加声明而增长。在旧版本的C#(2.0版之前)和Visual Studio(版本2005之前)中,此代码也将位于常规Default.aspx.cs文件中。

通过在C#中引入部分类,属于同一类的代码可以分割为多个文件。在这里,您可以看到“public partial class _Default”,它用于保存由Visual Studio设计器生成的代码。您将在Default.aspx.cs文件中看到相同的类签名(您可以使用它来编写自己的自定义代码)。

因此,开发人员(您)和设计人员(Visual Studio)可以独立工作而不会相互踩踏。

这取自First Web Program (Web Project) in C# Explained

答案 2 :(得分:1)

对我来说看起来像Visual Studio。 Try Googling only part of the message

答案 3 :(得分:1)

这也可以是ResXFileCodeGenerator生成的.Designer.cs文件,它为.resx文件生成强类型包装。

答案 4 :(得分:0)

嗯,它的代码是什么?大多数MS工具都包含此标头。 xsd.exe确实,sqlmetal(LINQ-to-SQL)等等。尝试向下看几行...例如,对我来说快速xsd测试显示第二个注释块:

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

但这在LINQ-to-SQL代码中不存在......; - (

答案 5 :(得分:0)

我认为这段代码是由Linq to SQL引擎生成的。

如果您了解如何使用Sql Enities

进行编码,则可以对其进行修改

答案 6 :(得分:0)

这些评论与我的某些服务参考文件中的评论完全匹配。这些是为WCF服务生成的代理文件,因此您的代码也可能在此区域。

如果在解决方案资源管理器中看不到这些文件,请单击“显示所有文件”,它们将在服务引用节点中显示为.cs文件。

答案 7 :(得分:0)

这是System.CodeDom从整个代码编译单元生成文件时生成的确切注释。

答案 8 :(得分:0)

Microsoft的{({3}})SVCUTIL工具将在每个文件的顶部生成带有此注释的源代码文件,而不会将自己标识为生成该文件的工具。