【问题标题】:Safely Accessing dynamic values in C#在 C# 中安全访问动态值
【发布时间】:2014-03-14 01:07:55
【问题描述】:

我正在寻找有关使用动态关键字时访问变量的更好/安全方式的想法。大多数时候

 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);
  }

谢谢

【问题讨论】:

标签: c#


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    相关资源
    最近更新 更多