cs-script:一个非常成熟的C#脚本开源引擎
|
admin
2024年12月23日 23:39
本文热度 182
|
推荐一个强大C#脚本引擎,方便我们在项目中,动态执行C#脚本。
01
项目简介
CS-Script是非常成熟的C#脚本引擎,自2004年起就发布了,即.NET发布后的两年。
支持托管和独立(CLI)执行模型,可以作为PowerShell的纯C#替代品,也可以通过托管脚本引擎在运行时扩展.NET应用程序。
允许在不影响代码库的情况下无缝切换底层编译技术,目前支持的编译器有dotnet.exe和csc.exe。
02
开发工具支持与平台兼容
与Visual Studio、VSCode、Sublime Text 3等开发工具有良好的集成,可以在Windows和Linux上运行,类库针对".NET Standard"进行编译,因此可以被任何托管应用程序托管。
03
使用方法
1、安装依赖库
Install-Package CS-Script
2、有返回值的的动态脚本
using CSScriptLib;
dynamic script = CSScript.Evaluator
.LoadMethod(@"int Product(int a, int b)
{
return a * b; // 计算两个数的乘积
}");
int result = script.Product(3, 2);
Console.WriteLine(result);
3、无返回值的动态脚本
using CSScriptLib;
// 使用CS-Script的Evaluator静态类创建一个委托(Delegate)
// 这个委托指向一个接受一个字符串参数的方法,该方法将字符串输出到控制台
var log = CSScript.Evaluator
.CreateDelegate(@"void Log(string message)
{
Console.WriteLine(message); // 使用Console.WriteLine将传入的消息输出到控制台
}");
// 调用创建的委托,并传入字符串"Test message"
log("Test message"); // 执行Log方法,输出"Test message"到控制台
4、简单表达式脚本
using CSScriptLib;
int sum = CSScript.Evaluator.Eval("6 + 3");
Console.WriteLine(sum);
using CSScriptLib;
ICalc calc = CSScript.Evaluator
.LoadCode<ICalc>(@"using System;
public class Script: ICalc // 继承ICalc接口
{
public int Sum(int a, int b) // 实现Sum方法
{
return a + b; // 返回两个整数的和
}
}");
int result = calc.Sum(1, 2);
Console.WriteLine(result);
04
项目地址
https://github.com/oleg-shilo/cs-script
该文章在 2024/12/24 10:05:14 编辑过