使用内联XSD和重用类为多个WSDL文件生成WCF类

时间:2012-08-24 15:22:47

标签: .net wcf xsd wsdl

我有很少的WSDL文件(我将来会不定期地使用它们),带有许多共享XSD类型的内联XSD(在每个WSDL中重复)。我需要考虑一个过程如何处理这些WSDL并重用生成的类,尽可能少的手动工作。我正在考虑的最简单的解决方案是将每个类生成为单独的文件,这将确保不同的类。

我已经尝试过使用重用选项的svcutil.exe,但它在我的情况下似乎不起作用。继承存在问题(XmlIncludeAttribute用于序列化) - 每个WSDL只包含整个继承层次结构的一部分。

所以看起来我需要获取我目前拥有的所有WSDL,从中提取XSD,将这些XSD合并到一个大的XSD中,并从这个合并的XSD文件中生成C#类。

这种问题有没有经过验证的解决方案?我很感激任何提示'n'tricks ..

1 个答案:

答案 0 :(得分:0)

我们遇到了类似的问题,svcutil生成了一个包含所有类的非常大的CS文件。

我们使用Resharper将文件拆分为单独的类文件。

只有在xsd中包含类的dll时,svcutil重用选项才有效。

你可以这样做:

  • 将每个wsdl放在自己的目录中
  • 在每个
  • 上运行svcutil
  • 使用resharper分割文件
  • 将所有文件复制到单个目录,跳过名称重复的文件