推薦一個強大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 編輯過