C#Project有自动生成的类,但是自动生成了什么?

时间:2010-12-21 02:19:30

标签: c#

我正在开发一个项目,我是最初的开发人员,但在过去的几年里,另外两个开发人员维护并升级了项目。

现在里面有一些类文件,顶部有以下内容:

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

using System.Xml.Serialization;

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

知道什么可能产生这些文件?其中一个我想清理其中有一些问题,但它说可能会覆盖更改。

2 个答案:

答案 0 :(得分:13)

这是XML Schema Definition Tool。你想要清理什么?

请注意,Xsd.exe执行的操作之一是“XSD to classes”,这就是生成相关类文件的原因:

  

XSD到班级
  从XSD架构文件生成运行时类。生成的类可以与System.Xml.Serialization.XmlSerializer一起使用,以读取和编写遵循模式的XML代码。

您应该能够更改源XSD文件,然后重新运行Xsd.exe以更改输出,同时保持与exe本身的兼容性。

答案 1 :(得分:1)

XSD.exe生成它们。它是.Net SDK中的一个工具,它采用XSD架构并生成与架构匹配的可序列化类。

检查项目属性中的“预构建”步骤。我打赌你会找到一个xsd.exe的调用。如果没有,它可能是.csproj文件(MSBuild)中定义的指令。您是否确定它们是在运行时生成的?或者他们手工生成并签入?

如果我没记错的话,生成的类是partials,所以你可以通过部分类添加功能......但如果它们是在构建时生成的,你就不能自己修改它们。

如果要更改类,则需要修改应用程序用于生成文件的XSD文件。