2019
v2.8.5.0
v2.8.0.0
-
2019/12/25
-
Natasha 日志操作类改名 NError => NErrorLog / NSucceed => NSucceedLog / NWarning => NWarningLog。
-
对外开放 DomainManagement.Clear 方法方便手动清除已卸载的域(默认自动管理)。
-
增强和修复 CS0234 的替换规则,识别父命名空间正则移除父子命名空间。
-
引擎语法树选项内部进行细微优化。
-
v2.7.6.0
-
2019/12/17
-
Natasha 方法操作类增加 Override 和 NewHidden 方法。
-
NAssembly 增加三种域创建方式。
-
移除代理操作类到 NCaller 项目中。
-
v2.7.3.0
-
2019/12/17
-
Natasha 非系统域生成的操作均进行了缓存,以便进行引用移除/域卸载等操作。
-
Type / Delegate / Assembly 均可以使用 RemoveReferences / DisposeDomain 方法进行引用移除或者卸载域操作。
-
v2.7.0.1
-
2019/12/16
-
Natasha.Core 项目负责原始编译的 API 以及域操作。
-
Natasha.Reverser 项目负责运行时信息反解操作。
-
Natasha 项目引用了 Natasha.Core 以及 Natasha.Reverser 并组建了 Template / Builder / Operator 动态构建三件套,提供便利的 API 以便对外使用。
-
v2.6.1.0
-
2019/12/07
-
移除 NFunc / RFunc / NAction / RAction / NDelegateOperator / RDelegateOperator / 字符串扩展方法 / 委托扩展方法。
-
改 Delete 卸载方法为 DisposeDomain ,改 AddInCache 为内部方法不对外开放。
-
三个静态创建实例的方法(Create(string) / Create(AssemblyDomain) / Random())增加第二个参数,指定是否以文件方式进行编译,默认为 false。
-
增加 NDomain / OopBuilder 的子类 / OnceMethodBuilder 的子类,增加静态属性 Default 作为系统域即 Create() 方法返回实例。
-
v2.5.4.0
-
2019/12/07
-
增加 CS0234 以及 CS0246 错误自动修复机制,命名空间在无效时会自动剔除并重编译。
-
增加 CS0104 的替换逻辑,在未手动解决二义性时,默认使用靠前的命名空间。
-
由 NDomain 创建的独立/随机域类型/结构/枚举/接口将支持回收。
-
v2.5.0.0
-
2019/12/06
-
Operator 移除 New / RandomDomian / MainDomain 静态属性。
-
Operator 以及 N 系列 API 增加静态创建方法,包括 Create(string) / Create(AssemblyDomain) / Random() 三种创建实例同时指定所属的域。
-
增加入口程序集的命名空间覆盖。
-
v2.4.0.0
-
2019/12/05
-
移除并发计数,增加委托操作扩展 , 现 Fake/FastMethodOperator.Random 以及 RAction/RFunc 生成的委托都存入了缓存中,这些委托可以直接调用 Delete 进行卸载。
-
默认使用所有 Using 覆盖编译代码,当发生 二义性引用时使用 CS0104Helper 处理二义性问题, 模板增加 UseCustomerUsing 方法来阻止 Using 覆盖,代价是将必要的 Using 引用精确引入到构建中。
-
编译引擎在出现二义性引用时将进行重试策略,重试次数 1 次。
-
v2.2.0.0
-
2019/11/28
- 增加四级运算 API , 可使用 DomainOperator 操作类来完成运算
- 改模板中 MethodBody 以及 OopBody 为追加模式
- 模板支持随机命名函数
v2.1.2.0
-
2019/11/27
- OOP 模板构建增加属性模板
- NAssembly 获取 Fake/FastMethodOperator 将属于同一域
- 增加 NDomain 操作类,可以链式调用 Create 方法创建域并继续创建方法如
Func<>
/AsyncFun<>
/UnsafeFunc
/AsyncUnsafeFunc
/Action<>
/AsyncAction<>
/UnsafeAction<>
/AsyncUnsafeAction<>
v2.1.1.0
-
2019/11/26
- 改 Operator.New 为 Operator.MainDomain
- 区分 NAction/NFunc/NDelegateOperator 为默认域,RAction/RFunc/RDelegateOperator 为随机域 API
- 增加随机域延迟回收机制,使用 DomainManagment.ConcurrentCount 进行随机域的计数。
- OopBuider 增加 UseRandomDomain 函数以支持随机域。
v2.0.5.0
-
2019/10/20
- 增强 NAction/NFunc/DelegateOperator 等封装类的传参类型,支持 string/string[]/Type/Type[]/Assembly/Asssembly[]
- 增强 Natasha 的 Using 方法解析
v2.0.4.0
-
2019/10/15
- 增强构建信息操作类
v2.0.2.1
-
2019/10/11
- 修复插件依赖加载
v2.0.2.0
v2.0.0.2
-
2019/09/27
- 修复默认域的插件依赖问题
- 加强域内并发控制
v2.0.0.0
-
2019/09/13
- 增强类型获取,简化脚本逻辑
-
2019/09/07
- 增强命名空间操作,Delegate 支持多种可变参数类型,包括 Type,String,Assembly
- 添加部分类编译 UT 测试
-
2019/09/05
- 增加模板类属性 API 的支持,template.Public/PublicMember/Private/PrivateMember 等。
-
2019/09/02
- 优化插件依赖加载方式。
-
2019/08/30
- 简化语法树检测过程。
-
2019/08/24
- 编译层融入程序集操作层。
- 合并程序集错误日志。
-
2019/08/23
- 支持共享域/自定义域协作。
- 支持动态类型覆盖。
- 支持程序域锁操作。
-
2019/08/22
- 修复可用名反解器。
- 日志传递给编译器的 Exception 字段。
- 优化日志深度和写入规则。
-
2019/08/21
- 重构引擎,并入 IComplier 抽象类中。
- 增加 NClass/NEnum/NInterface/NStruct 操作类。
- 所有包装类默认使用公有访问级别。
- 增加多维数组反解。
- 增加锯齿数组反解。
-
2019/08/20
- 统一采用流加载模式。
- Dispose 方法解决程序集上下文卸载的问题。
- 引擎加锁模式解决并发重复加载程序集问题。
-
2019/08/17
- Core3.0 版本兼容。
- 增加 Core3.0 版本的程序集管理,支持编译环境隔离。
v1.3.6.0
v1.3.4.0
-
2019/08/11
- 支持 NFunc 静态方法构建动态脚本。
- 支持 NAction 静态方法构建动态脚本。
v1.3.2.0
-
2019/08/09
- 支持编译不安全方法。
- 函数模板添加 Unsafe 方法。
v1.3.0.0
-
2019/08/07
- 归类整理命名空间。
- 增加 NewClass\NewStruct\NewInterface 静态操作类。
- 增加 NewMethod 静态操作类。
- 增加接口、抽象类、虚方法、普通类的继承实现。
v1.2.1.0
-
2019/08/06
- 废弃 RuntimeComplier 改用 OopComplier,OopComplier 带有异常捕获的功能,因此建议使用该方法。
- 增加 Complier.LoadFile 方法,在 GetClassType/GetStructType.GetInterfaceType 之前添加 dll, 让编译脚本支持引用 dll 中的内容。
v1.2.0.0
-
2019/08/05
- 增加字符串扩展方法,FastOperator.
- 修改 Class 操作为 Oop 操作,例如 ClassBuilder -> OopBuilder。
- 优化模板结构。
- Oop 模板支持类、结构体、接口多种构建方式。
- 增加字段模板。
- FastMethodOperator 的
Complie<>
方法增加智能参数/返回值检测/补齐。
v1.1.0.0
-
2019/08/03
- 区分 OS 分隔符
- 增加异常捕获
- 优化引擎结构
- 增强编译器的实现
- 改 ComplierOption 为 Complier
v1.0.4.0
v0.8.2.0
-
2019/07/31
- 增强日志
- 增加类模板重编译功能
- 修复克隆扩展类型
v0.8.0.0
-
2019/07/28
- 运行时编译区分类与结构体