我正在添加對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
{
....