c#——字典转化为对象(dictionary to object)

来源:互联网 发布:华硕笔记本win10优化 编辑:程序博客网 时间:2024/06/05 00:35
       /// <summary>        /// 字典类型转化为对象        /// </summary>        /// <param name="dic"></param>        /// <returns></returns>        public T DicToObject<T>(Dictionary<string, object> dic) where T : new()        {            var md = new T();            CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;            TextInfo textInfo = cultureInfo.TextInfo;            foreach (var d in dic)            {                var filed = textInfo.ToTitleCase(d.Key);                try                {                    var value = d.Value;                    md.GetType().GetProperty(filed).SetValue(md, value);                }                catch (Exception e)                {                }            }            return md;        }


其中将字符串转化为首字母大写,既符合c#属性命名规范

 CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
TextInfo textInfo = cultureInfo.TextInfo;

 var filed = textInfo.ToTitleCase(“name”);

得到的field值为:Name


其中对象的赋值利用了反射原理,获得对象的属性,并为它们一一赋值。

 md.GetType().GetProperty(filed).SetValue(md, value);

0 0
原创粉丝点击