12 Star 14 Fork 7

blqw / blqw.Literacy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
WTFPL

使用IL.Emit方式快速访问属性,字段和方法

特色

全,易,快

功能强大
上手简单
性能优异

与反射的性能比较

测试1

测试内容 循环次数 运行时间 CPU时钟周期
PropertyInfo.GetValue() 1000000 204ms 467,083,802
dynamic 1000000 41ms 92,844,899
Literacy 1000000 28ms 65,759,428

测试2

测试内容 循环次数 初始化时间 运行时间 CPU时钟周期
Lambda.Compile() 1000000 1.7693ms 33ms 467,083,802
CreateDelegate(GetGetMethod()) 1000000 1.8108ms 29ms 92,844,899
Literacy 1000000 1.6712ms 12ms 65,759,428

性能测试代码

更新说明

2016.06.30

  • 更新MEF

2016.04.15

  • 更新MEF

2016.02.23

  • 修复bug

2016.02.21

  • 增加导入插件 CreateGetter,CreateSetter,CreateCaller

2016.02.20

  • 优化IoC模块

2015.11.06

  • 将 Convert3 独立
  • 内置MEF模块,用于IOC方式载入Convert3

2015.06.11

  • 增加对匿名类的支持,支持包括匿名类的属性赋值和new操作

2015.06.09

  • 签入Convert3项目 代替原有类型转换方案 删除部分不常用的特性

2014.12.25

  • ObjectProperty中增加 MappingName 属性
  • Convert2中增加对象转对象和对象转DataTable的相关方法

2014.12.12

  • 在 Convert2 中增加全角转半角 半角转全角的方法

2014.12.04

  • 增加接口 IMemberMappingAttributre 用于控制对象成员名称的映射关系,对象成员特性如果实现该接口,则Convert2中转换实体的方法优先考虑映射名称

2014.10.10

  • 日常维护,优化了StringToGuid的逻辑,优化性能

2014.09.22

  • 正式版发布

2014.09.14

  • 修正Convert2枚举类型转换中的bug
  • 修正Convert2可空值类型转换中的bug
  • 修正Convert2实体转换中的bug
  • 修正Convert2转换object类型中的bug
  • 修正Literacy在反射式会忽略系统自动生成字段的问题
    • ObjectProperty中增加AutoField属性,用于判断是否为自动生成的字段
    • ObjectPropertyCollection 循环时(foreach)不会出现自动字段
  • 修正字段可赋值判断为是否常量(之前是判断是否Readonly,事实证明Readonly的字段也是可以赋值的)
  • 修改TypeCodes枚举,支持更多类型

2014.08.31

  • 增加静态类 Convert2, 用于转换对象
  • TypeInfo增加TryParse和Convert方法 用于转换对象

2014.08.19

  • 增加静态类 TypesHelper, 存放用于处理Type对象的静态方法
  • 增加密封类 TypeInfo, 用于拓展系统Type对象的属性和方法
  • 修改Literacy类中的缓存,将操作转移至TypesHelper
  • 修改TypeCodes的计算方法,将操作转移至TypeInfo

2014.07.30

  • 为Literacy和ObjectProperty实体增加ID(自增标识,2个类共享自增序列)和UID(全球唯一标识符GUID)方便在做缓存的时候作为key使用
  • 增加TypeCodes枚举,用于扩展系统的TypeCode 会稍微影响构造Literacy的速度,但是由于Literacy本身是全局缓存,所以影响不大

2014.07.29

  • 增加对特性的支持,现在可以从 Literacy 或 Literacy.Property 或 Literacy.Field 直接使用Attributes属性访问
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2016 blqw Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO.

简介

使用IL.Emit方式快速访问属性,字段和方法 展开 收起
C#
WTFPL
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/blqw/blqw.Literacy.git
git@gitee.com:blqw/blqw.Literacy.git
blqw
blqw.Literacy
blqw.Literacy
master

搜索帮助

14c37bed 8189591 565d56ea 8189591