跳到主要内容

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


v2.8.11.0

  • 2020/01/01
    • 移除程序集域映射,使用官方的 API 进行域转换。

    • .NET Standard2.0 支持扫描同 DLL 文件目录下的所有依赖文件项。