再论dynamic 关键字

时间:2021-03-27 19:42:59

有关动态数据类型 ,大家估计在实际中用的比较多了,不是很陌生。有关自己在项目中 的实际钉子总结:

1  匿名对象中的字段,是只读的,不能赋值

2 动态类型 指向强类型实例,注意观察内部的属性可访问性

3 随时创建匿名对象给动态类型或许是更好的方法。

 dynamic msg=null;
            try
            {                 var snInfos = bll_RepairOrderService.GetTheVendorBuyProductsSNInfos(Id, Mid);                 if (null != snInfos && snInfos.Count > 0)
                {                     var results = new List<string>();
                    foreach (var item in snInfos)
                    {
                        results.Add(item.InternalSN);
                    }
                    msg = new { _s = 1, _d = results };                 }
                else
                {
                    //msg.Status = MessageStatus.Error;
                    // msg.Results = null;
                    msg = new { _s = 1, _d = string.Format("经销商编码:{0}!", Id) };
                }