在WCF服务中使用我们自己的xsd文件



我们有一个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中似乎也有一个新的选项,请参阅文档。我自己还没有检查过。

这种开发方法被称为合同优先,所以你会在谷歌上找到更多信息:-)

相关内容

最新更新