我们有一个xsd文件,其中已经定义了契约。我们使用xsd.exe
为WCF服务生成类,并再次为Web服务使用XmlSerializerFormat
。
在我看来,这是一件奇怪的事情,让WCF为xsd.exe
为我们生成的类生成一个新的XSD,而我们已经有了XSD定义。。
虽然xsd.exe
在为我们生成类方面做得很好,但它也简化了复杂类型,正如您在我前面的问题中看到的那样;也就是说,xsd在生成类并再次在webservice中使用时,实际上会发生一些变化;ArrayOfStringXXX问题。。
我们是否可以告诉WCF服务使用我们自己的xsd文件作为其约定,而不是根据xsd.exe提供的内容生成新的约定?
我尝试过的:
- 我已经看了这个示例:IWsdlExportExtension接口示例,它看起来很好用,但我无法替换导出方法中的xsd,因为它从来没有呼叫
TL;DR:我们可以将WCF服务指向我们自己的xsd文件,而不是让它自己生成吗
感谢
您可以使用WSCF.blue等工具从XSD文件生成数据协定类。我有这方面的经验,它在大多数情况下都可以工作。请参阅此博客以获得一个很好的解释。
还有其他工具可以实现这一点,请参阅此问题以获得一些建议。
Visual Studio 2012中似乎也有一个新的选项,请参阅文档。我自己还没有检查过。
这种开发方法被称为合同优先,所以你会在谷歌上找到更多信息:-)