我正在查看一些更新从 xsds 生成的类的工作。我认为这将是 T4 模板的一个很好的用途,但我没有看到任何人这样做的例子。本质上,我想做Linq to XSD所做的事情,但不在生产解决方案中包含 alpha 构建目标。
那里有任何相关的链接吗?
现在是一个维基。在此处存储您的相关答案。
我正在查看一些更新从 xsds 生成的类的工作。我认为这将是 T4 模板的一个很好的用途,但我没有看到任何人这样做的例子。本质上,我想做Linq to XSD所做的事情,但不在生产解决方案中包含 alpha 构建目标。
那里有任何相关的链接吗?
现在是一个维基。在此处存储您的相关答案。
我目前正在使用 xsd2code.net,在这里找到它:http: //xsd2code.codeplex.com/。好处多多:
开源,所以你可以调整/破解它
用列表甚至您自己的自定义集合类型替换数组
从命令行运行,或作为 Visual Studio 插件运行(右键单击 xsd,告诉生成)
我也喜欢你可以在单个 xsd 文件上运行它,如果找不到引用的 xsd(就像 xsd.exe 那样),它也不会崩溃。因此,在单个文件上运行它很容易,以防您只想对一个文件进行快速更新。
但是,T4 也应该是一个选项,我刚刚搜索了 T4 XSD 并找到了一些解决方案。
我发现 XSD 很难用作代码生成的模型。它过于灵活和复杂,无法满足我的需求。强类型数据集设计器/生成器是尝试使用 XSD 作为代码生成模型的一个很好的例子。它在大多数情况下都可以正常工作,但不支持您可以扔给它的所有可能的模式。另一方面,XSD 不能表示直接生成表适配器所需的信息,因此必须创建特定于 DataSet 的扩展。
如果您决定继续使用 XSD 作为模型,您可能希望选择一个简单的子集,足以满足您需要生成的内容。一种方法是将 XSD 模式加载到 DataSet 对象中,并使用此 DataSet 对象作为模型。DataSet 元数据比通用 XSD 更易于访问。这也将允许您使用 Visual Studio 中现有的 DataSet 设计器来编辑您的模型。