我在寻找使用动态关键字时更好/更安全地访问变量的方法的想法。大多数时候
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 :(得分:-1)
明确检查值是否存在是完全可以接受的,只有在满足您的要求时才会继续。
我发现在读取您无法完全信任的数据时(这意味着来自磁盘,外部服务,本地API或用户输入的大多数数据)验证所有内容是一种很好的做法。