C# 將對象屬性字典集合轉換為動態對象並給動態對象動態添加屬性


定義將字典集合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

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM