【问题标题】:Reflection vs faster method of read/write a property value反射与更快的读取/写入属性值的方法
【发布时间】:2011-08-05 22:36:49
【问题描述】:

我已经阅读了很多关于 lambda、表达式树和一些编译的东西......现在我很困惑我想知道是否存在一种更快的方法来获取属性名称来读取和写入这样的值反思:

PropertyInfo[] propertyInfo = item.GetType().GetProperties();
foreach(var item in propertyInfo)

有没有更好的方法不使用慢反射来读取/写入 DataTable 类型的所有属性到 List 排序的 ORMapper ?

【问题讨论】:

    标签: c# reflection lambda expression compiled


    【解决方案1】:

    您只需要获取一次属性名称和设置器。所以这不是性能关键。然后构建一个调用 setter 的表达式树并编译它。

    最后在每条记录上调用编译后的表达式树,速度很快。

    【讨论】:

    • 就性能影响达成一致。反射在整个 .NET Framework 本身中被大量使用,如果出于正确的原因在正确的时间使用反射会相对较快...此外,发布者应考虑将 Typed DataSets 作为更好的实现方式这种“穷人的ORM”。
    猜你喜欢
    • 2011-09-03
    • 2014-12-31
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 2018-07-02
    相关资源
    最近更新 更多