Natasha 增强反解类。
引擎增加接收语法树的 API。
启动项目 [动态插件编译] 支持运行时改变部分插件的功能,重编译插件。
Natasha 日志操作类改名 NError => NErrorLog / NSucceed => NSucceedLog / NWarning => NWarningLog。
对外开放 DomainManagement.Clear 方法方便手动清除已卸载的域(默认自动管理)。
增强和修复 CS0234 的替换规则,识别父命名空间正则移除父子命名空间。
引擎语法树选项内部进行细微优化。
Natasha 方法操作类增加 Override 和 NewHidden 方法。
NAssembly 增加三种域创建方式。
移除代理操作类到 NCaller 项目中。
Natasha 非系统域生成的操作均进行了缓存,以便进行引用移除/域卸载等操作。
Type / Delegate / Assembly 均可以使用 RemoveReferences / DisposeDomain 方法进行引用移除或者卸载域操作。
Natasha.Core 项目负责原始编译的 API 以及域操作。
Natasha.Reverser 项目负责运行时信息反解操作。
Natasha 项目引用了 Natasha.Core 以及 Natasha.Reverser 并组建了 Template / Builder / Operator 动态构建三件套,提供便利的 API 以便对外使用。
移除NFunc / RFunc / NAction / RAction / NDelegateOperator / RDelegateOperator / 字符串扩展方法 / 委托扩展方法。
改 Delete 卸载方法为 DisposeDomain ,改 AddInCache 为内部方法不对外开放。
增加 CS0234 以及 CS0246 错误自动修复机制,命名空间在无效时会自动剔除并重编译。
增加 CS0104 的替换逻辑,在未手动解决二义性时,默认使用靠前的命名空间。
由 NDomain 创建的独立/随机域类型/结构/枚举/接口将支持回收。
Operator 移除 New / RandomDomian / MainDomain 静态属性。
Operator 以及 N 系列 API 增加静态创建方法,包括 Create(string) / Create(AssemblyDomain) / Random() 三种创建实例同时指定所属的域。
增加入口程序集的命名空间覆盖。
移除并发计数,增加委托操作扩展 , 现 Fake/FastMethodOperator.Random 以及 RAction/RFunc 生成的委托都存入了缓存中,这些委托可以直接调用Delete进行卸载。
默认使用所有 Using 覆盖编译代码,当发生二义性引用时使用 CS0104Helper 处理二义性问题, 模板增加 UseCustomerUsing 方法来阻止 Using 覆盖,代价是将必要的 Using 引用精确引入到构建中。
编译引擎在出现二义性引用时将进行重试策略,重试次数1次。