<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          NScript.Net 動態(tài)腳本引擎

          聯(lián)合創(chuàng)作 · 2023-09-28 03:59

          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);
                      }
                  }
          瀏覽 28
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  高清操B| 韩国三级黄片视频 | 色色色999 | 无码免费高清 | 超碰无码人妻 |