我正在尝试使用svcutil.exe从一组.wsdl文件生成-only-服务契约(接口)。当我这样做时(来自一个http托管的wsdl),它会选择包含的模式并为它们生成所有代码。
大
我真的喜欢做的是使用xsd.exe工具使用已经从模式文件生成的一组类(原因并不重要,只需要它就足够了)说我需要在一个程序集中使用类型,而服务在另一个程序集中合同)。我成功地生成了包含所有类型的程序集。
当我尝试让svcutil.exe使用该程序集中的类型时,会出现问题。我的命令行看起来像这样:
svcutil /target:code /noconfig /reference:my_types.dll http://path/to/wsdl
这很好用,但生成的代码包含my_types.dll文件中所有类型的重复项。我从svcutil.exe的文档中了解到,这是/ reference:参数要克服的确切问题。然而,在我的情况下,它无法正常工作。
为什么?
答案 0 :(得分:5)
显然它只适用于DataContract类型而不适用于XmlSerializer类型。
答案 1 :(得分:1)
我有这个问题。我用/ r引用的二进制文件中的某些东西仍然在生成的代码中再次构建。从其中一个服务函数返回的对象之一是返回数据表或其他一些可怕的东西。我在System.Data的整个路径中添加了一个/ r并修复了它。
/ r:“C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.2 \ System.Data.dll”