首页 > 其他 > 详细

反射获取运行时属性值的替代方法

时间:2015-04-28 11:14:09      阅读:89      评论:0      收藏:0      [点我收藏+]

方法一:表达式树

  1         public static Dictionary<string, Func<T, object>> InitDic<T>()

 2         {
 3             Dictionary<string, Func<T, object>> model = new Dictionary<string, Func<T, object>>();
 4             var plist = typeof(T).GetProperties().ToList();
 5             var newa = Expression.Parameter(typeof(T), "c");
 6 
 7             foreach (var item in plist)
 8             {
 9                 var callfoo = Expression.Property(newa, typeof(T).GetProperty(item.Name));
10                 var convert = Expression.Convert(callfoo, typeof(object));
11                 var func = Expression.Lambda<Func<T, object>>(convert, newa).Compile();
12                 model.Add(item.Name, func);
13             }
14 
15             return model;
16         }

反射获取运行时属性值的替代方法

原文:http://www.cnblogs.com/baozhu/p/4462087.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!