程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#發現之旅第十四講 基於動態編譯的VB.NET腳本引擎(上)(10)

C#發現之旅第十四講 基於動態編譯的VB.NET腳本引擎(上)(10)

編輯:關於C語言

在這段 代碼中,程序首先獲得腳本模塊的類型,在這裡類型全名為 “NameSpaceXVBAScriptEngIEn. mdlXVBAScriptEngine”,然後使用反射獲得該 類型中所有的公開或未公開的靜態成員方法對象,對於其中的每一個方法創建一個 ScriptMethodInfo類型的腳本方法信息對象來保存這個方法的一些信息,將這些信息保存到 myScriptMethods列表中供以後調用。

筆者配套定義了ScriptMethodInfo類型和 myScriptMethods列表,定義它們的代碼如下

/// <summary>
///  所有腳本方法的信息列表
/// </summary>
private ArrayList  myScriptMethods = new ArrayList();
/// <summary>
/// 腳本方 法信息
/// </summary>
private class ScriptMethodInfo
{
    /// <summary>
    /// 模塊名稱
    ///  </summary>
    public string ModuleName = null;
     /// <summary>
    /// 方法名稱
    ///  </summary>
    public string MethodName = null;
     /// <summary>
    /// 方法對象
    ///  </summary>
    public System.Reflection.MethodInfo MethodObject  = null;
    /// <summary>
    /// 方法返回值
     /// </summary>
    public System.Type ReturnType =  null;
    /// <summary>
    /// 指向該方法的委托
    /// </summary>
    public System.Delegate  MethodDelegate = null;
}

使用腳本方法信息列表,腳本引擎調用腳 本方法時就不需要使用反射查找腳本方法了,只需要在腳本方法信息列表中快速的查找和調 用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved