C#项目有自动生成的类,但是是什么自动生成了它们?

13

我正在处理一个项目,在这个项目上我是最初的开发人员,但在过去几年里有两个其他的开发人员对项目进行了维护和升级。

现在项目内部有一些带有以下内容的类文件:

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

有什么想法可以解释这些文件是如何生成的吗?其中一个文件中存在一些问题,我想要清理它们,但是提示说更改可能会被覆盖。


4
这条评论告诉你它是由“xsd”生成的。 - Andrew Hare
4
这段代码是由 xsd 自动生成的,版本号为 2.0.50727.1432。 - Reddog
这段代码是由一个工具生成的。我认为您应该查看该项目的文档,以了解他们使用的工具是什么。 - Cheng Chen
2个回答

14

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

请注意,Xsd.exe 执行的操作之一是 "XSD to classes",这就是生成您所问及的类文件的操作:

XSD to Classes
从 XSD 模式文件生成运行时类。生成的类可与 System.Xml.Serialization.XmlSerializer 结合使用,用于读取和写入遵循模式的 XML 代码。

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


2
XSD.exe生成了它们。它是.Net SDK中的一个工具,它接受XSD模式并生成与模式匹配的可序列化类。
请检查项目属性中的“预构建”步骤。我打赌你会发现调用了xsd.exe。如果没有,在.csproj文件(MSBuild)中可能有指令定义。你确定它们是在运行时生成的吗?还是手动生成并提交的?
如果我没记错,生成的类是部分类,因此您可以通过部分类添加功能...但是如果它们是在构建时生成的,则无法修改类本身。
如果您想更改类,则需要修改应用程序用于生成文件的XSD文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接