2013-11-15 53 views
0

我正在连接到Web服务。生成类时,它将创建两个相同的属性,一个System.CodeDom.Compiler.GeneratedCodeAttribute属性为“System.Xml”,一个具有System.Runtime.Serialization的System.CodeDom.Compiler.GeneratedCodeAttribute属性”。自动生成的类的从Web服务生成两次相同的属性

例子:

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="CountryCode", Namespace="http://schemas.datacontract.org/2004/07/")] public enum CountryCode : int

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18408")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.datacontract.org/2004/07/")] public enum CountryCode

因为这个解决方案将无法编译,给我的错误:

CS0101:命名空间“TAP”已经包含了“COUNTRYCODE的定义'

任何想法将不胜感激。

+0

如何连接到Web服务?什么是Web服务相关的代码? – Szymon

回答

0

添加服务引用时,请确保检查“引用程序集中的重用类型”。下面的链接应提供更多相关信息...

http://msdn.microsoft.com/en-us/library/vstudio/bb628653(v=vs.100).aspx

编辑:

下面的文章,可以揭示你所看到的一些更多的光线......

http://msdn.microsoft.com/en-us/library/bb907578(v=vs.110).aspx

特别是以下信息...

当服务参考添加到一个项目中,服务中定义的任何类型都在本地项目中生成。在许多情况下,当服务使用常见的.NET Framework类型或在共享库中定义类型时,会创建重复类型。 为避免此问题,默认情况下共享引用程序集中的类型。如果要禁用一个或多个程序集的类型共享,可以在“配置服务引用”对话框中执行此操作。 禁用单个程序集中的类型共享 在解决方案资源管理器中,选择服务引用。 在“项目”菜单上,单击“配置服务参考”。 在“配置服务引用”对话框中,选择“在指定的引用程序集中重新使用类型”。 选中要启用类型共享的每个程序集的复选框。要禁用组件的类型共享,请将该复选框清除。 禁用所有程序集中的类型共享 在解决方案资源管理器中,选择服务引用。 在“项目”菜单上,单击“配置服务参考”。 在“配置服务引用”对话框中,清除“引用程序集中的重用类型”复选框。

祝你好运!

+0

该标志已设置。 –

+0

更新了答案。让我知道它是否有帮助。 – gpmurthy

相关问题