【问题标题】:Visual Studio XSD Tool: Generate Collections Rather Than ArraysVisual Studio XSD 工具:生成集合而不是数组
【发布时间】:2010-10-12 01:05:28
【问题描述】:
我使用 Visual Studio XSD 实用程序从 XSD 生成了一些 C# 类,它生成了用于存储元素集合的数组,而不是内置的通用 Collection(或相关)类之一。
xsd /? 中没有提到命令行参数提到任何关于生成集合而不是数组的事情,但我知道这可以通过 Visual Studio 生成的 Web 服务代理类来完成,所以我认为它一定是可能的。
有人知道如何让 XSD 实用程序生成集合类而不是数组吗?
【问题讨论】:
标签:
xml
visual-studio
xsd
code-generation
【解决方案2】:
问题在于 XSD 与 XML 语言无关。它不能使用其他不支持的 Java 或 C# 中的任何内容。数组是最小的公分母。
Java 开发人员使用 OXM 库(如 XStream)将对象编组为 XML 并返回。它允许您在从对象到 XML 时指定自定义类型。听起来您必须在 .NET 工具箱中找到类似的东西。
这不是您问题的答案,但这就是我认为 XSD 无法完成这项工作的原因。就像 Java 开发人员接触 XStream 一样,您必须另寻他处。
【解决方案3】:
您已经看到了将集合与服务引用一起使用的能力,而不是与 Web 引用一起使用。请查看 svcutil.exe 实用程序。看起来 svcutil /t:code file.xsd 可能会为您执行此操作。