2009-01-29 6 views
11

Estoy trabajando en la depuración de algunos códigos y noté un montón de métodos y objetos generados automáticamente.auto-generated Code

En la parte superior del código de estas encuentro el siguiente comentario:

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

Cómo qué a averiguar lo que genera el código? Mi curiosidad me ha ayudado a superar esto, así que es por eso que pregunto. He buscado partes del comentario en Google y no he encontrado nada concreto.

+30

"Este código fue generado por una herramienta." Esto siempre me hace reír un poco. –

+1

Esta es una versión ** más específica ** de la suya http://stackoverflow.com/questions/4495782/c-sharp-project-has-auto-generated-classes-but-what-auto-generated-them – gideon

Respuesta

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

No va a cambiar este archivo C# generado automáticamente. A medida que agrega controles ASP.NET a la página, este archivo crece con las declaraciones adicionales. En las versiones anteriores de C# (antes de la versión 2.0) y Visual Studio (antes de la Versión 2005), este código también estaría en el archivo Default.aspx.cs.

Con la introducción de clases parciales en C#, el código que pertenece a la misma clase se puede dividir en varios archivos. Aquí puede ver la "clase parcial pública _Default", que se utiliza para contener el código generado por el diseñador de Visual Studio. Verá también la misma firma de clase en el archivo Default.aspx.cs (lo usa para escribir su propio código personalizado).

Por lo tanto, el desarrollador (usted) y el diseñador (Visual Studio) pueden trabajar de forma independiente sin pisar uno al otro.

Esto está tomado de First Web Program (Web Project) in C# Explained

+0

Esto es útil gracias. El enlace es muy bueno también, mucho aprecio en su explicación. –

2

Depende totalmente de lo que sea el código.

Presumiblemente, usted conoce la clase que está depurando, ya sea parte de un ORM, parte de un proxy generado por el servicio web, etc. Esa es la información crucial.

0

Bueno, ¿qué código es? La mayoría de las herramientas MS incluyen este encabezado. xsd.exe hace, sqlmetal (LINQ to SQL) no, etc. Trate de mirar hacia abajo unas pocas líneas ... por ejemplo, una prueba rápida para xsd me muestra un segundo bloque de comentarios:

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

Pero este doesn' t existen en el código LINQ a SQL ... ;-(

+0

No veo un comentario como el segundo en el código. –

+0

Entonces no es xsd ;-p –

0

Creo que este código se genera por el LINQ a motor SQL.

puedes modificarlo si entiendes cómo codificar con Sql Enitie s

+0

Gracias, es un buen comienzo para mirar. –

1

Esto también puede ser un archivo .Designer.cs generado por ResXFileCodeGenerator, que genera envoltorios fuertemente tipados para archivos .resx.

0

Estos comentarios coinciden exactamente con los encontrados en algunos de mis archivos de referencia de servicio. Estos son archivos proxy generados para los servicios de WCF, por lo que tal vez su código también se encuentre en esta área.

Si no puede ver esos archivos en el Explorador de soluciones, haga clic en 'Mostrar todos los archivos' y aparecerán como archivos .cs en el nodo de referencias de servicio.

0

Este es el comentario exacto que se genera por System.CodeDom cuando se genera un archivo de una unidad entera código de compilación.