2011-02-07 26 views
0

我正在從Web服務獲取SOAP消息形式的響應。事先不知道有哪些節點可用(有些但不是全部)。 可以說,我得到的數據有關客戶如何在訪問Web服務的結果時避免接收NullReferenceException?

名稱

,並在代碼中,我可以寫

string name = ""; 
string city = ""; 
name = customer.name; 
city = customer.city; 

如果城市返回一個空字符串我可以處理與寫作

city = (string)customer.city; 

改爲。但有時響應不包括城市節點,然後我得到NullReferenceException是未處理的錯誤,我該如何解決這個問題?

+0

您沒有初始化的姓名和城市爲空字符串,因爲你要設置他們在接下來的幾行。 – 2011-02-07 03:38:39

回答

1

你實際上需要的是:

city = customer != null ? customer.city : ""; 

順便說一句,鑄造stringstring因爲你在這裏:(string)""(的(string)customer.Citycustomer.City == ""的equiavlent)是沒有必要的。 (當然除非customer.City實際上不是string。)

+0

是的,這是我之後的語法,謝謝 – Nick 2011-02-07 01:03:54

0

你也可以使用?? ??運營商。這是假設客戶對象將始終不爲空。

string city = customer.city ?? ""