我正在添加对Web服务的引用。在Web服务中,我有一个名为CustomerRecord
的类。我有一个名为GetCustomerData()
的方法,它返回一个CustomerRecord
类的数组。添加Web服务引用后引起的不祥引用
消耗Web服务的项目也有CustomerRecord
类。这是Web服务中的一个确切代表。
现在,当我使用web服务时,有2个CustomerRecord
类。这导致模糊的引用错误。
我正在添加对Web服务的引用。在Web服务中,我有一个名为CustomerRecord
的类。我有一个名为GetCustomerData()
的方法,它返回一个CustomerRecord
类的数组。添加Web服务引用后引起的不祥引用
消耗Web服务的项目也有CustomerRecord
类。这是Web服务中的一个确切代表。
现在,当我使用web服务时,有2个CustomerRecord
类。这导致模糊的引用错误。
简单的解决方案是重命名其中的一个。但如果你不能这样做,那么你仍然有两个选择。
删除引用两个CustomerRecord类的文件顶部的using,并使用完整的名称空间简单引用它。
或者,在同一文件中,使用别名中的一个用于该文件。
using WsCustomerRecord = My.Long.Namespace.CustomerRecord;
// ...
WsCustomerRecord customer = new WsCustomerRecord();
在给出错误的行中,编译器无法确定应该选择哪个类。
为了解决这个问题有你的选择:
使用不同的命名空间这两个类。
删除其中一个类
使用别名
当两个类都在同一个命名空间只需要第一个选项,您希望保留他们。
当两个类完全相同时,第二个选项很有用。您可以删除客户端中的一个,或者在添加服务引用时,选择重用现有类选项,以保留客户端版本。
的最后一个选项是这样的:
using ns1 = Some.CoolNamespace;
using ns2 = Another.CoolNaespace;
ns2.AClass x = new ...
如果您使用Web bservice,CustomerRecord
类必须具有相同的命名空间中的Web服务。要解决歧义,请右键单击\ resolve,然后明确写入所需的名称空间对CustomerRecord
对象的任何引用。
由于CustomerRecord
是同一个类,我建议删除项目中使用Web服务的CustomerRecord
,并且只使用Web服务的一个。
如果你需要编写不需要通过Web服务或不被SOAP序列化记得从Web方法来任何类是局部的特定代码,这样你就可以编写额外的代码
public partial class CustomerRecord
{
....