2020
Natasha.CSharp.All v2.0.2.3
-
2020/11/24
- 修复编译禁断警告功能;
Natasha.CSharp.All v2.0.2.2
-
2020/11/20
- 支持 .NET5 / C# 9 ;
- 增加 NRecord 构建模板;
- 增加 RecordProperty(name) 只读包装属性,增加 OOP 模板 Property 构建是关于 init 类型的 API;
- 增加支持 fixed 修饰符;
- .NET5 版本 增加 SkipInit 方法跳过初始化,即 SkipLocalsInit 特性(注解),可用在存储结构构建以及方法上;
- 修复日志输出格式;
Natasha.CSharp.All v2.0.2.1
-
2020/11/14
- 支持 .NET5 Runtime 版本。
- 初始化函数增加参数,false 代表不初始化默认域的引用,此时引用需要在域中手动添加。
Natasha.CSharp.All v2.0.1.1
-
2020/10/28
- 支持 netcore3.1 Runtime 版本。
Natasha.CSharp.All v2.0.1.0
-
2020/10/27
- 使用初始化开关,避免多次初始化调用。
Natasha.CSharp.All v2.0.0.0
-
2020/10/10
- 重整项目结构,将 C# 相关的项目归于 CSharp 文件夹下。
- 修复域管理操作类对域的弱引用关系,解决 DomainManagement.IsDeleted 判断失效的问题。
- 完善周边类库。
v4.1.0.0
-
2020/08/06
- 支持域内动态编程时插件和动态生成程序集的 Using 引用覆盖。
- 升级 Natasha.Framework; 添加 GetReferenceElements API 以便返回当前域所有的引用,增加 AddAssemblyEvent/RemoveAssemblyEvent 事件,在程序集加载与移除操作时触发。
- 反解器支持方法返回值的 ref 修饰的反解。
- 反解器支持泛型约束的 notnull 约束反解。
- 增加插件 UT 测试,编译规避 CS1704 问题,支持同依赖不同插件的 file / stream 方式加载,单独加载依赖程序集可给插件的依赖进行升级。
- 增加 Natasha.CSharp.All 库,提供组件库的自动引用。
v4.0.0.0
-
2020/07/24
- 升级重构 Natasha.Framework 编译框架。
- 重构 AssemblyDomain 为 NatashaAssemblyDomain。
- 重构 NatashaCSharpSyntax。
- 重构 NatashaCSharpCompiler。
- 解耦出编译组件,注册后采用 Emit 初始化。
- CSharp 编译器开放本地编译标识。
- 增加 ReadonlyScript 的字符串方法扩展以便支持对 Readonly 的赋值。
- 优化引擎性能。
- 调整部分模板标识的命名空间为全局。
v3.14.0.0
-
2020/07/02
- 部分操作类提升到全局引用,AssemblyDomain \ DomainManagement \ AssemblyCSharpBuilder。
- 使用可继承的编译环境包。
- 使用可继承的调试环境包。
- AssemblyCSharpBuilder 引擎继续调整 API 结构,提升部分选项属性的暴露层级。
- 模板增加泛型约束模板,反解器增加泛型约束反解功能。
- 修复部分模板状态机操作。
- 增加 CS0012 错误重定向。
v3.10.0.0
-
2020/06/07
- 分离 SDK / SHARE 运行时库引用,以便更好的支持系统类库的私有字段。
- 调整初始化 API
DomainManagement.RegiestDefault
=>AssemblyDomain.Init();
。 - 引擎继续调整 API 结构,提升部分属性的暴露层级:
- AllowUnsafe 属性以支持非安全代码编译;
- OutputToFile 切换内存及文件编译模式;
- UseRelease 是否使用优化编译;
- OutputKind 编译类型的枚举,包括 dll / exe 等;
- Domain 域设置;
- AssemblyName 程序集名;
- 精简引擎部分冗余代码。
- 引擎增加对私有字段的支持。
v3.8.0.0
-
2020/06/06
-
修复模板状态机操作。
-
模 板中 API 调整:
- DefinedName() -> Name()
- DefinedType() -> Type()
-
调整引擎 API 结构,减少 AssemblyCSharpBuilder 类 API 操作的层级, 现在可以直接由 AssemblyCSharpBuilder 实例调用 Add 方法添加字符串, AssemblyCSharpBuilder 中调整 CompileErrorBehavior / SyntaxErrorBehavior 两个字段,可以由实例直接调用。
-
引擎增加对私有字段的支持。
-
模板增加 FlagTempalte 以便于构建命名空间上的额外标记, 同时增加 API AllowPrivate,传参以便于引擎确定对什么类/程序集进行私有字段支持。
-
NDelegate 增加 SetClass API 以便于对整体类框架的调整,例如
.SetClass(item=>item.AllowPrivate<TPropertyClass>())
。
-
v3.4.0.0
-
2020/06/01
- 快速构建对象的 API 增加 .GetXXXBuilder , 返回字段/属性/方法构造器。
- nclass.Property/Field/Method/Ctor( builder) 支持直接传一个完好的 builder 进去。
v3.2.0.0
-
2020/05/12
- 增加插件自动装载 using 的功能,当使用 CustomeUsing 方法时仍然需要自己手动指定。
- 统一大部分 API 的命名空间为 Natasha.CSharp。
- 修复部分字段命名。
- DomainBase 部分方法实现将在 AssemblyDomain 中实现。
- DomainBase 增加 GetPluginAssembies 抽象方法以返回插件带来的程序集,需要子类实现。
v3.0.2.0
-
2020/05/06
- 修复修饰符模板状态机 BUG。
- 增加语法树选项 ForceAddSyntax 不管对错强制添加语法树。
v2.15.0.0
-
2020/03/17
- 抽象出静态构造层模板,并规范 模板命名。
- 新增静态构造 API, 可以传编译器到方法内对域进行赋值。
- 改静态构造方法以委托形式设置编译器选项。
- 破坏了 DelegateOperator 方法的使用,建议直接使用 NDoamin 。
v2.14.0.0
-
2020/03/16
- NDomain 类使用 Using 模板来提供命名空间预定义的操作, 方便提前定制命名空间。
- 新增域、命名空间关联模板 NHandler 以便提供与当前信息相同的 delegate / class / interface / enum / struct 操作类。
- 增加 ALink 抽象类约束,以便完成 Link 操作。
v2.12.0.0
-
2020/03/06
- 新增
NDomain.XXX.Delegate<MyDelegate>
系列 API, 开发者可传自定义委托 , 该系列方法包括 AsyncDelegate / UnsafeDelegate / AsyncUnsafeDelegate / Delegate。
- 新增
-
2020/03/09
- 修改 API Field 模板构建增加了一个参数 int? fieldoffset。
v2.10.2.0
-
2020/03/05
- 修复一处方法反解器的 BUG ,暂不解析 new 关键字。
v2.10.0.0
-
2020/02/15
-
日志操作的命名空间改为 System。
-
类型反解器添加命名空间。
-
修改 CS0104 BUG。
-
-
2020/02/14
-
增加警告编译日志(默认关闭)。
-
增加全局详细日志控制字段 UseDetailLog。
-
修复 cs0104 泛型二义性问题。
-
v2.9.10.0
-
2020/02/05
-
修复字段保护级别反解。
-
增加栈上类型反解。
-
v2.9.8.0
-
2020/01/14
- 优化引擎锁。
v2.9.7.0
-
2020/01/13
-
默认关闭成功日志提升性能
-
AssemblyDomain 增加事件以便外部调用者跟踪插件生命周期。
-
v2.9.6.1
-
2020/01/10
-
增强反解器 API :
List<T>
由 GetDevelopName 返回。 -
增加反解器 API :
List<>
由 GetRuntimeName 返回。 -
移除 CSC 依赖。
-
v2.9.6.0
-
2020/01/06
-
补加无参的 UnsafeAction / AsyncAction / UnsafeAsyncAction API。
-
语法检测增加日志开关和异常引发机制。
-
v2.9.0.0
-
2020/01/03
-
修改大量静态初始化 API, https://github.com/dotnetcore/Natasha/blob/master/docs/zh/api/static-init.md 。
-
支持运行时引发异常。
-
支持新域内外部插件优先覆盖系统域插件进行编译。
-
修复若干编译器 BUG。
-
文档增加支持 asp.net core 3.1 的配置节点编写。
-
v2.8.11.0
-
2020/01/01
-
移除程序集域映射,使用官方的 API 进行域转换。
-
.NET Standard2.0 支持扫描同 DLL 文件目录下的所有依赖文件项。
-