c# 匿名类型获取值

代码片段:

读取 new{ ....}

 方法1:转换为json对象

dynamic model = SaleOrderServices.GetGiftOrderById(WebHelper.GetQueryInt("id"));

                var json = JsonConvert.SerializeObject(model);
                var o2 = JsonConvert.DeserializeObject(json) as JObject;
                string CommpanyName = (string)o2["CommpanyName"];
                string STORENAME = (string)o2["STORENAME"];
                string CUSTOMERNAME2jjj = (string)o2["CUSTOMERNAME2"];

 方法2:如果结果为空的话,会报错

 dynamic expando = new System.Dynamic.ExpandoObject(); //动态类型字段 可读可写
                expando.Id = 1;
                expando.Name = "Test";

  PropertyDescriptorCollection collection = TypeDescriptor.GetProperties(model);
                PropertyDescriptor cnpd = collection.Find("CommpanyName", true);
                ViewData["CommpanyName"] = cnpd != null ? cnpd.GetValue(model).ToString() : "";
                
                PropertyDescriptor cn2pd = collection.Find("CUSTOMERNAME2", true);
                ViewData["CUSTOMERNAME2"] = cn2pd!=null? cn2pd.GetValue(model).ToString():"";

                PropertyDescriptor snpd = collection.Find("STORENAME", true);
                ViewData["STORENAME"] = snpd != null ? snpd.GetValue(model).ToString() : "";

posted @ 2019-07-06 10:40  枫-  阅读(533)  评论(0编辑  收藏  举报