2011-12-24 40 views
1

我正在添加对Web服务的引用。在Web服务中,我有一个名为CustomerRecord的类。我有一个名为GetCustomerData()的方法,它返回一个CustomerRecord类的数组。添加Web服务引用后引起的不祥引用

消耗Web服务的项目也有CustomerRecord类。这是Web服务中的一个确切代表。

现在,当我使用web服务时,有2个CustomerRecord类。这导致模糊的引用错误。

回答

1

简单的解决方案是重命名其中的一个。但如果你不能这样做,那么你仍然有两个选择。

删除引用两个CustomerRecord类的文件顶部的using,并使用完整的名称空间简单引用它。

​​

或者,在同一文件中,使用别名中的一个用于该文件。

using WsCustomerRecord = My.Long.Namespace.CustomerRecord; 

// ... 

    WsCustomerRecord customer = new WsCustomerRecord(); 
1

在给出错误的行中,编译器无法确定应该选择哪个类。

为了解决这个问题有你的选择:

  1. 使用不同的命名空间这两个类。

  2. 删除其中一个类

  3. 使用别名

当两个类都在同一个命名空间只需要第一个选项,您希望保留他们。

当两个类完全相同时,第二个选项很有用。您可以删除客户端中的一个,或者在添加服务引用时,选择重用现有类选项,以保留客户端版本。

的最后一个选项是这样的:

using ns1 = Some.CoolNamespace; 
using ns2 = Another.CoolNaespace; 

ns2.AClass x = new ... 
1

如果您使用Web bservice,CustomerRecord类必须具有相同的命名空间中的Web服务。要解决歧义,请右键单击\ resolve,然后明确写入所需的名称空间对CustomerRecord对象的任何引用。

由于CustomerRecord是同一个类,我建议删除项目中使用Web服务的CustomerRecord,并且只使用Web服务的一个。

如果你需要编写不需要通过Web服务或不被SOAP序列化记得从Web方法来任何类是局部的特定代码,这样你就可以编写额外的代码

public partial class CustomerRecord 
{ 
....