zoukankan      html  css  js  c++  java
  • 反射获取运行时属性值的替代方法

    方法一:表达式树

      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         }
  • 相关阅读:
    Python 基础之函数初识与函数参数
    python 基础之浅拷贝与深拷贝
    Python 基础之集合相关操作与函数和字典相关函数
    Python 基础之字符串操作,函数及格式化format
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
  • 原文地址:https://www.cnblogs.com/baozhu/p/4462087.html
Copyright © 2011-2022 走看看