2009-01-29 9 views
11

Je travaille sur le débogage du code et j'ai remarqué un tas de méthodes et d'objets générés automatiquement.généré automatiquement Code

Au sommet du code pour cela, je trouve le commentaire suivant:

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

Comment-vous comprendre ce qui a généré le code? Ma curiosité a pris le dessus sur moi, c'est pourquoi je demande. J'ai cherché des parties du commentaire dans Google et n'ai rien trouvé de concret.

+30

"Ce code a été généré par un outil." Cela me fait toujours rire un peu. –

+1

Cette question est une ** version plus spécifique ** de la vôtre http://stackoverflow.com/questions/4495782/c-sharp-project-has-auto-generated-classes-but-what-auto-generated-them – gideon

Répondre

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

Vous ne modifierez pas ce fichier C# généré automatiquement. Comme vous continuez à ajouter des contrôles ASP.NET à la page, ce fichier se développe avec les déclarations supplémentaires. Dans les anciennes versions de C# (avant la version 2.0) et Visual Studio (avant la version 2005), ce code serait également dans le fichier Default.aspx.cs standard.

Avec l'introduction de classes partielles en C#, le code appartenant à la même classe peut être réparti sur plusieurs fichiers. Vous voyez ici la "classe partielle publique _Default", qui est utilisée pour contenir le code généré par le concepteur Visual Studio. Vous verrez également la même signature de classe dans le fichier Default.aspx.cs (vous l'utilisez pour écrire votre propre code personnalisé). Ainsi, le développeur (vous) et le concepteur (Visual Studio) peuvent travailler de manière indépendante sans se chevaucher les uns les autres.

Ceci est tiré de First Web Program (Web Project) in C# Explained

+0

Ceci est utile merci. Le lien est très bien aussi, beaucoup d'appréciation dans votre explication. –

2

Cela dépend entièrement de ce que le code est.

Vraisemblablement, vous connaissez la classe que vous déboguez - si elle fait partie d'un ORM, fait partie d'un proxy généré par un service web, etc. C'est le bit d'information crucial.

0

Eh bien, de quel code s'agit-il? La plupart des outils MS incluent cet en-tête. xsd.exe le fait, sqlmetal (LINQ to SQL) ne, etc. Essayez de regarder quelques lignes ... par exemple, un test rapide pour xsd me montre un second bloc de commentaire:

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

Mais ce n » t existe dans le code LINQ to SQL ... ;-(

+0

Je ne vois pas de commentaire comme le second dans le code. –

+0

Alors ce n'est pas xsd ;-p –

0

Je pense que ce code a été généré par le moteur LINQ to SQL.

vous pouvez le modifier si vous comprenez comment coder avec Sql Enitie s

+0

Merci c'est un bon début d'où chercher. –

1

Cela peut également être un fichier .Designer.cs généré par ResXFileCodeGenerator, qui génère des wrappers fortement typés pour les fichiers .resx.

0

Ces commentaires correspondent exactement à ceux trouvés dans certains de mes fichiers de référence de service. Ce sont des fichiers proxy générés pour les services WCF, donc peut-être que votre code est également dans cette zone.

Si vous ne pouvez pas voir ces fichiers dans l'Explorateur de solutions, cliquez sur "Afficher tous les fichiers" et ils apparaîtront sous forme de fichiers .cs dans le nœud Références de service.

0

Ceci est le commentaire exact qui est généré par System.CodeDom lors de la génération d'un fichier à partir d'une unité de compilation de code entier.

Questions connexes