1

我们有一个 xsd 文件,其中已经定义了合约。我们用来xsd.exe为我们的 WCF 服务生成类,并XmlSerializerFormat再次为我们的 web 服务使用。

在我看来,这是一件很奇怪的事情,让 WCF 为xsd.exe为我们生成的类生成一个新的 XSD,而我们已经有了我们的 XSD 定义。

虽然xsd.exe为我们生成类做得很好,但它也简化了复杂类型,正如您在我之前的问题中看到的那样;意思是,xsd在生成类并再次在webservice中使用时实际上会发生一些变化;ArrayOfStringXXX 问题..

我们是否可以告诉 WCF 服务使用我们自己的 xsd 文件作为其合同,而不是根据 xsd.exe 提供的内容生成新合同?

我尝试了什么:

  • 我已经看过这个示例:IWsdlExportExtension 接口示例,它看起来很受欢迎,但我无法替换导出方法中的 xsd,因为它从未被调用过。

TL;DR:我们能否将 WCF 服务指向我们自己的 xsd 文件,而不是让它自己生成?

谢谢

4

1 回答 1

0

您可以使用WSCF.blue之类的工具从您的 XSD 文件生成数据协定类。我有这方面的经验,并且在大多数情况下都可以正常工作。 请参阅此博客以获得很好的解释。

还有其他工具可以实现这一点,请参阅此问题以获取一些建议。

Visual Studio 2012 中似乎也有一个新选项,请参阅文档。我自己没有检查过这个。

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

于 2012-12-07T17:41:57.980 回答