2011-12-24 42 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 
{ 
....