Skip to content

基于 Roslyn 的 C# 动态程序集构建库,该库允许开发者在运行时使用 C# 代码构建域 / 程序集 / 类 / 结构体 / 枚举 / 接口 / 方法等,使得程序在运行的时候可以增加新的模块及功能。Natasha 集成了域管理/插件管理,可以实现域隔离,域卸载,热拔插等功能。 该库遵循完整的编译流程,提供完整的错误提示, 可自动添加引用,完善的数据结构构建模板让开发者只专注于程序集脚本的编写,兼容 stanadard2.0 / netcoreapp3.0+, 跨平台,统一、简便的链式 API。 且我们会尽快修复您的问题及回复您的 issue.

License

Notifications You must be signed in to change notification settings

dotnetcore/Natasha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

91558fe · Dec 9, 2024
Dec 9, 2024
Jul 15, 2024
Apr 2, 2023
Dec 9, 2024
Dec 9, 2024
Dec 3, 2024
Aug 30, 2019
Sep 1, 2022
Dec 9, 2024
Oct 12, 2022
Aug 30, 2019
Dec 3, 2024
Nov 14, 2024
Apr 23, 2023
Apr 23, 2023

Repository files navigation

中文 | English

你们的反馈是我的动力,文档还有很多不足之处;

当你看完文档之后仍然不知道如何实现你的需求,您可以查看 FAQ 或者在issue中提出你的需求。


Natasha

Member project of .NET Core Community Gitter Badge GitHub license wiki
Compile NuGet Badge GitHub commit activity Codecov UT Test From PR



    基于 [Roslyn](https://github.com/dotnet/roslyn) 的 C# 动态程序集构建库,该库允许开发者在运行时使用 C# 代码构建域 / 程序集 / 类 / 结构体 / 枚举 / 接口 / 方法等,使得程序在运行的时候可以增加新的模块及功能。Natasha 集成了域管理/插件管理,可以实现域隔离,域卸载,热拔插等功能。 该库遵循完整的编译流程,提供完整的错误提示, 可自动添加引用,完善的数据结构构建模板让开发者只专注于程序集脚本的编写,兼容 netstandard2.0, 跨平台,统一、简便的链式 API。 且我们会尽快修复您的问题及回复您的 [issue](https://github.com/dotnetcore/Natasha/issues/new) . [这里有更多的使用文档](https://natasha.dotnetcore.xyz/zh-Hans/docs)

展示


使用

引入包 DotNetCore.Natasha.CSharp.Compiler 编译单元主体


引入包 DotNetCore.Natasha.CSharp.Compiler.Domain 编译域 (netcore3.1+)

初始化(v9)

NatashaManagement
    //获取链式构造器
    .GetInitializer() 
    //使用引用程序集中的命名空间
    .WithMemoryUsing()
    //使用内存中的元数据
    .WithMemoryReference()
    //注册域构造器
    .Preheating<NatashaDomainCreator>();

动态编译

AssemblyCSharpBuilder assemblyCSharp = new();
assemblyCSharp.ConfigLoadContext(ctx => ctx.AddReferenceAndUsingCode<object>());
assemblyCSharp.Add("public class A{public void Show(){}}");
assemblyCSharp.LogCompilationEvent += (log) => { Console.WriteLine(log.ToString()); };
var newAssembly = assemblyCSharp.GetAssembly();

赞助

关闭打赏

捐助明细

  • L*u 50 元
  • 亮 20 元
  • 升讯威在线客服系统 5 元
  • Json-jh [尊敬的博客园VIP会员] 22 元
  • Newbe俞佬 90.2 元
  • 崔星星 17 元
  • Money 100 元
  • Newbe俞佬 200 元
  • iNeuOS工业互联网平台 100 元
  • 老萌 30 元
  • ****天下 10 元
  • 文航 5 元
  • TonyQu 10 元
  • Rwing 20 元

感谢老铁们的支持,感激不尽 🙏🙏🙏。



License

FOSSA Status

About

基于 Roslyn 的 C# 动态程序集构建库,该库允许开发者在运行时使用 C# 代码构建域 / 程序集 / 类 / 结构体 / 枚举 / 接口 / 方法等,使得程序在运行的时候可以增加新的模块及功能。Natasha 集成了域管理/插件管理,可以实现域隔离,域卸载,热拔插等功能。 该库遵循完整的编译流程,提供完整的错误提示, 可自动添加引用,完善的数据结构构建模板让开发者只专注于程序集脚本的编写,兼容 stanadard2.0 / netcoreapp3.0+, 跨平台,统一、简便的链式 API。 且我们会尽快修复您的问题及回复您的 issue.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages