使用XSD.exe自定义类名生成的类

时间:2009-03-14 20:50:40

标签: c# .net xsd.exe

是否可以对使用.Net XSD.exe工具生成的类名进行任何控制?

3 个答案:

答案 0 :(得分:6)

基本上没有。如果您手动编写类,则可以:

[XmlType("bar")]
class Foo {}

但是,您无法使用xsd生成的类执行此操作。不幸的是,您无法partial class执行的操作之一是将其重命名。当然,您可以使用xsd生成它,更改.cs文件并且不再生成,但这不适合维护。

答案 1 :(得分:6)

据我所知,我不认为这是可能的,类名几乎完全匹配模式中的什么。

我个人会在XSD生成代码后更改类名,但说实话我通常只是坚持XSD生成的内容。然后,阅读代码的其他人更容易理解哪些类映射到XML的哪些部分。

或者,如果您可以控制架构,可以更新它吗?

答案 2 :(得分:2)

任何具有深度嵌套的架构都会以完全没用的名称结束。

我不知道如何解决这个问题,但我的建议至少要减少负面影响是这样的:定义一个非常命名类型的别名列表。这样,您可以编写不完全不可读的代码而不会失去重新生成的能力。

using AgentAddress = Example.Namespace.DataContract.RootElementNestedElementAgentAddress;
...

遗憾的是,这个列表本身必须被复制粘贴到需要它的所有代码文件中,但我认为这至少构成了一种改进。