2014-03-14 47 views
0

我正在尋找更好/安全的方式訪問變量時使用動態關鍵字的想法。大多數時間在C中安全地訪問動態值#

myDto.ipaddress = item["ipaddr"]; 

是完全沒問題,除了有時這些值沒有在json中定義和需要訪問而沒有拋出一個NULL異常。

dynamic routes_list = json_serializer.DeserializeObject(System.Web.HttpUtility.UrlDecode(data)); 

    for (int i = 0; i < routes_list["routes"].Length; i++) 
    { 
     var item = routes_list["routes"][i] 


     System.Collections.Generic.Dictionary<string, object> itemDict = item;    

     // having to repeat this too often 
     object snmask= string.Empty; 
     itemDict.TryGetValue("snmask", out snmask); 
    } 

感謝

+0

http://stackoverflow.com/questions/2839598/how-to-detect-if-a-property-exists-on-a-dynamic-object-in-c – DeveloperGuo

+0

可能重複的[dynamic,How to test如果一個屬性可用](http://stackoverflow.com/questions/2998954/dynamic-how-to-test-if-a-property-is-available) – nawfal

回答

-1

這是完全可以接受的顯式檢查值的存在,以及是否符合您的要求,才能繼續進行。

我發現在讀取不能完全信任的數據(這意味着來自磁盤,外部服務,本地API或用戶輸入的大部分數據)時驗證所有內容。