码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-28 11:16:35      阅读:111      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!