今天推荐一个针对C#动态编译库,动态编译的使用场景有很多:
1、动态代码生成:可以根据用户的输入或者系统配置动态执行C#代码,比如很多Web在线编译器,就是这个原理;
2、代码反射:可以在运行时获取、分析和操作 C# 代码的元数据信息,包括类型、方法、属性、字段等。
3、插件开发:可以动态加载和执行外部 C# 代码,从而实现插件开发和扩展程序功能。.
4、热更新:可以在运行时对程序进行修改并重新编译,从而实现热更新功能,无需停止服务即可更新程序。
01 项目简介
02 使用方法
//script为C#可执行的代码
string script = "Console.WriteLine(\"Hello World!\");";
//动态编译并执行
var action = NDelegate.RandomDomain().Delegate<Action>(script);
action();
//卸载action,及时释放内存
action.DisposeDomain();
03 项目地址