添加Web服务引用时重复wsdl对象

时间:2013-09-30 14:12:42

标签: web-services wsdl xml-serialization

当我添加webservice引用(不是服务引用)时,我获得了相同的元素,重命名后缀为1,如图所示。这在我尝试调试时会导致错误。内部例外说

Message = Types'service.AddressType1'和'service.AddressType'都使用来自命名空间'xxx'的XML类型名称'AddressType'。使用XML属性为类型指定唯一的XML名称和/或命名空间。

我理解错误,我已经看到一些不同的线程,这些告诉我,我应该指定不同的命名空间,但我没有在我的代理类中的任何地方定义AddressType1。我只有AddressType。从哪里获取AddressType1或其他? 其他人得到了这个错误?谢谢你的帮助。

repeated objects

2 个答案:

答案 0 :(得分:1)

你看过这个答案吗? Inheriting Existing .Net Class Serialization Error

此答案还讨论了分层命名空间的问题(似乎您可能正在这样做),因此这可能是您的主要问题:Classes in different sub-namespaces all appear at top level in WSDL

您可能需要指定XmlTypeAttribute。您能提供代码样本以供审核吗?

答案 1 :(得分:0)

我继承了使用xsd2code工具生成的代理类。问题是这个工具为父xsd类正确生成了命名空间,但是当我检查子类中由其他父类共享/共同的类时,看起来命名空间字段为空,如下所示。因此,我的服务引用具有相同的属性/类,具有1个后缀,如问题所示。我刚为这些子/继承类添加了相同的命名空间,它工作正常,没有重复的属性。我希望这有助于其他有类似问题的人。

 System.Xml.Serialization.XmlRootAttribute([Namespace]:="", IsNullable:=True), _