在C#中安全访问动态值

时间:2014-03-14 01:07:55

标签: 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);
  }

由于

1 个答案:

答案 0 :(得分:-1)

明确检查值是否存在是完全可以接受的,只有在满足您的要求时才会继续。

我发现在读取您无法完全信任的数据时(这意味着来自磁盘,外部服务,本地API或用户输入的大多数数据)验证所有内容是一种很好的做法。