【发布时间】:2009-03-14 20:50:39
【问题描述】:
是否可以控制使用 .Net XSD.exe 工具生成的类名?
【问题讨论】:
是否可以控制使用 .Net XSD.exe 工具生成的类名?
【问题讨论】:
据我所知,我认为这是不可能的,类名几乎与架构中的内容完全匹配。
我个人会在 XSD 生成代码后更改类名,但老实说,我通常只是坚持使用 XSD 生成的内容。这样其他人阅读代码就更容易理解哪些类映射到 XML 的哪些部分。
或者,如果您可以控制架构,您可以更新它吗?
【讨论】:
基本上没有。如果您手动编写类,您可以:
[XmlType("bar")]
class Foo {}
但是,您不能对 xsd 生成的类执行此操作。不幸的是,您不能对partial class 做的一件事就是重命名它。当然,你可以使用xsd来生成它,更改.cs文件不再生成它,但这并不适合维护。
【讨论】:
任何嵌套较深的模式都会以完全无用的名称结束。
我不知道有什么方法可以解决这个问题,但我至少可以减少负面影响的建议是:为名称非常糟糕的类型定义一个别名列表。通过这种方式,您可以编写并非完全不可读的代码,而不会失去重新生成的能力。
使用 AgentAddress = Example.Namespace.DataContract.RootElementNestedElementAgentAddress; ...很遗憾,这个列表本身必须复制粘贴到所有需要它的代码文件中,但我认为这至少构成了一种改进。
【讨论】: