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