【发布时间】:2010-09-20 13:46:53
【问题描述】:
您正在 SOA 世界中进行 Web 服务的合同优先开发。
编辑 XSD 文件后,从 XSD 文件自动(重新)生成 .net 类的最佳方法是什么?
【问题讨论】:
标签: .net web-services xsd code-generation
您正在 SOA 世界中进行 Web 服务的合同优先开发。
编辑 XSD 文件后,从 XSD 文件自动(重新)生成 .net 类的最佳方法是什么?
【问题讨论】:
标签: .net web-services xsd code-generation
xsd.exe 将为您生成新的类。
根据 Visual Studio 的设置方式,将 xsd.exe 添加到“属性/构建事件/构建后事件”将在您每次进行重建时强制重新生成。
【讨论】:
如果使用 .net 1.1 或 2.0,xsd.exe。如果使用 3.0 或 3.5,svcutil.exe。如果您不介意使用不受支持的代码,LINQ-to-XSD (http://blogs.msdn.com/xmlteam/archive/2008/02/21/linq-to-xsd-alpha-0-2.aspx) 很酷。使用任何工具时,请注意某些模式不能很好地自动转换为 .NET 类。如果您发现是这种情况,请手动编写类代码并实现 IXmlSerializable。
【讨论】:
我们正在使用 Thinktecture 的 WSCF - Web Services Contract First 工具进行 Web 服务开发,首先创建 XSD 模式,然后使用该工具生成服务接口。过去 2 年我们一直在使用这个工具,我强烈推荐它。
同样的人还启动了WSCF.blue 项目,该项目是他们原始工具的继承者,并允许合同优先开发(首先阅读 XSD)。 WSCF.blue 旨在支持 Windows Communication Foundation (WCF)。
【讨论】:
我为此使用了http://xsd2code.codeplex.com/releases/view/22222 VS addin。
【讨论】: