NScript.Net 動態(tài)腳本引擎
NScript 是 .net 動態(tài)腳本引擎, 解決.net環(huán)境windows系統(tǒng)下類似java中Grovvy的功能和方向。 在互聯(lián)網(wǎng)項目可以用來做動態(tài)營銷活動(營銷業(yè)務(wù)解耦和剝離),規(guī)則引擎,流程引擎,windows運維腳本,源碼式插件開發(fā)等。
使用方式
包括exe Main方式,程序集方式,應(yīng)用程序域三種方式。
最終編譯文件
BSF.BaseService.NScript.exe
exe 說明
1) 可以用cmd命令運行本exe
/run 命令格式:/run {filename} {args}
說明:必須實現(xiàn)Main入口函數(shù). {filename} 為文件路徑,{args}為Main入口參數(shù),默認(rèn)空格分隔。
/help 命令格式:/help
說明:用戶查看當(dāng)前exe支持的命令說明。
2)exe本身就是腳本編輯器。
可以用作.net 腳本的編輯工具,在實際運行環(huán)境中直接編輯或臨時修改代碼,開發(fā)環(huán)境中建議還是使用vs。
3)exe本身也是腳本運行時。
整個腳本解析和運行時。
4) exe大小
exe 本身很小很小,因為打包合并了第三方編輯器控件,才變更大些。
5)exe可以被解決方案以dll方式引用,并使用NScriptHelper接口方法。
Main方式示例
說明:
以exe命令的方式運行腳本示例
1. 點擊“運行.bat”
2. 點擊 "bsf.baseservice.nscript.exe" 進行腳本編輯及調(diào)試。
截圖:
壓縮包下載:http://share.weiyun.com/043fe46f11aabc1c2c17eb4d7cfa1e00
(或git源碼目錄下/文檔/demo)
程序集或應(yīng)用程序域方式運行示例
說明
1) 解決方案引用"BSF.BaseService.NScript.exe"
2) 程序集方式及應(yīng)用程序域方式使用代碼demo。
{
this.richTextBox1.Text = @" public class B
{
//static void Main(string[] args)
//{
// System.Console.WriteLine(""hello"");
// System.Console.ReadLine();
// System.Console.ReadKey();
//}
public string test(string a)
{
return a;
}
}";
}
//程序集方式
private void button1_Click(object sender, EventArgs e)
{
try
{
string code = this.richTextBox1.Text;
CompilerResult result = null;
var r = NScriptHelper.Run(new CompilerParams()
{
EnumSourceType = Core.EnumSourceType.Code,
EnumCompilerMode = Core.EnumCompilerMode.Assembly,
CodeOrFileName = code
},
"B", "test", new object[] { "a" }, out result);
MessageBox.Show(r);
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}
//應(yīng)用程序域方式
private void button2_Click(object sender, EventArgs e)
{
try
{
string code = this.richTextBox1.Text;
CompilerResult result = null;
var r = NScriptHelper.Run(new CompilerParams()
{
EnumSourceType = Core.EnumSourceType.Code,
EnumCompilerMode = Core.EnumCompilerMode.AppDomian,
CodeOrFileName = code
},
"B", "test", new object[] { "a" }, out result);
MessageBox.Show(r);
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}評論
圖片
表情
