码迷,mamicode.com
首页 > Windows程序 > 详细

C# 将对象属性字典集合转换为动态对象并给动态对象动态添加属性

时间:2021-02-02 11:23:33      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:obj   read   rop   var   and   write   ret   ops   end   

定义将字典集合Dictionary转换为动态对象的方法

        #region 将字典集合转换为动态对象
        /// <summary>
        /// 将字典集合转换为动态对象
        /// </summary>
        /// <param name="propertyDics">属性/属性值字典集合</param>
        /// <returns></returns>
        public static dynamic DictionaryToExpandoObject(IDictionary<string, object> propertyDics)
        {
            if (propertyDics == null) return null;

            IDictionary<string, object> expandoObject = new ExpandoObject();
            foreach (var d in propertyDics)
            {
                expandoObject.Add(d);
            }

            return expandoObject as ExpandoObject;
        }
        #endregion

测试代码:

        #region 测试将字典集合转换为动态对象
        public static void DictionaryToExpandoObject()
        {
            var props = new Dictionary<string, object>();
            props.Add("p1", "p1_Val");
            props.Add("p2", 10);
            var dynamicObj = HttpClientHelper.DictionaryToExpandoObject(props);
            Console.WriteLine($"读取动态对象属性:p1:{dynamicObj.p1},p2:{dynamicObj.p2}");

            // 添加属性
            dynamicObj.p3 = "p3_val";
            // 更新属性
            dynamicObj.p2 = "p2_newVal";

            Console.WriteLine($"读取动态对象属性:p1:{dynamicObj.p1},p2:{dynamicObj.p2},p3:{dynamicObj.p3}");
            Console.Read();
        }
        #endregion

运行结果:

技术图片

 

C# 将对象属性字典集合转换为动态对象并给动态对象动态添加属性

标签:obj   read   rop   var   and   write   ret   ops   end   

原文地址:https://www.cnblogs.com/tomorrow0/p/14358719.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!