028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

动态编译库 Natasha 5.0 兼容版本发布

Natasha 5.0 版本已于 2022/10/10 日发布, 此次大版本更迭带来了兼容性支持, 目前 Natasha 可以兼容 standard2.0 及 coreapp3.1 以上版本.

创新互联是一家专业提供吉林企业网站建设,专注与成都网站设计、成都网站建设、外贸网站建设HTML5、小程序制作等业务。10年已为吉林众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

下载使用 NuGet\Install-Package DotNetCore.Natasha.CSharp -Version 5.0.0.


引擎分离

该版本分离了编译引擎, Natasha 将根据 {NET VERSION} 目标版本来适配对外的 API.



代码分离

本次版本在源码层,分为 MultiDomain / Public / SingleDomain 三部分, 并使用自定义宏 MULTI 来区分单/多域, 从工程文件上做兼容隔离允许 Natasha 后续的升级工作不必过多的关注兼容性代码, 多域引擎仍然是 Natasha 未来版本的主战场, 迭代优化工作将在 MultiDomain 文件夹中进行.
相比较有特色的 API {OperatorClass}.DefaultDomain/CreateDomain/RandomDomain/UseDomain 单域版仅有 {OperatorClass}.DefaultDomain 一个 API, 单域引擎的编译结果均加载到主域中, 因此也不具备隔离和卸载功能.


使用须知

案例

一个尽可能复杂的案例:

var action = NDelegate

//使用随机域 也可以使用 CreateDomain / UseDomain / DefaultDomain 
//Core3.1以下仅能使用 DefaultDomain
.DefaultDomain()

//[可选API] 必要时使用 ConfigBuilder 配置编译单元(下面只为展示API, 有需求就用, 没需求不用写)
.ConfigBuilder(builder => builder

  //配置编译器选项
 .ConfigCompilerOption(opt => opt
    //配置平台
   .SetPlatform(Microsoft.CodeAnalysis.Platform.AnyCpu)
    //Release 方式编译
   .CompileAsRelease()
    //开启可空警告
   .SetNullableCompile(Microsoft.CodeAnalysis.NullableContextOptions.Warnings))

  //配置语法选项
 .ConfigSyntaxOptions(opt => opt
    //配置支持的脚本语言版本
   .WithLanguageVersion(Microsoft.CodeAnalysis.CSharp.LanguageVersion.CSharp8))

  //禁用语义检查与过滤
 .DisableSemanticCheck()
)

 //[可选API] 配置该方法所在的类模板
.ConfigClass(item => item
   //给类配置一个名字,不用随即名
  .Name("myClass")
   //不使用默认域的 Using 缓存
  .NoGlobalUsing())

 //[可选API] 为类模板添加 using 引用
.ConfigUsing("System")

 //这里的 API 参照定义的委托, 包括委托的参数
 //例如 Action / Func 拥有一个参数, 参数的名字请在 Action / Func 上 F12 查看定义获取参数名.
.Action("Console.WriteLine(\"Hello World!\");");

action(); /*Output: Hello World!*/

更多案例 更多文档


更新日志


网站名称:动态编译库 Natasha 5.0 兼容版本发布
转载来于:http://www.tsicrk.com/article/dsoidgc.html

其他资讯

让你的专属顾问为你服务

1.7582s