2

我正在使用使用 xsd.exe 工具从 XML 模式生成的类。它目前会生成一个巨大的(32k 行).cs 文件。然后我使用 XMLSerializer 对模型的部分进行序列化和反序列化。我需要覆盖这些类中的属性,因此我在单独的文件中有部分类,它们覆盖了其中一些生成的方法。但是,这意味着每次模式更改时都要进入并将数百个方法标记为虚拟方法。有没有办法让 xsd.exe 工具在生成方法时将它们标记为虚拟?

4

3 回答 3

2

XSD.exe 的输出不是很可定制。

不久前我遇到了类似的问题,并创建了一个简单的控制台应用程序来修改从 XSD.exe 生成的输出。

于 2009-11-24T22:07:08.340 回答
0

您需要修改序列化代码对我来说似乎很奇怪。如果您需要覆盖属性,您不能简单地创建新的属性来包装现有的属性并添加新的行为吗?还是我错过了重点。

于 2009-11-24T22:08:03.770 回答
0

如果您必须持续执行此操作,您应该研究某种代码生成。构建 XSD 生成的类型,然后编写一个应用程序来加载这些类型,并使用反射生成除了所有属性都是虚拟的之外的相同类型。然后,您将能够从新类型派生并根据需要覆盖属性。

这可以成为您构建过程的一部分。

于 2009-12-05T01:08:08.860 回答