首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# AddIn 啟動代碼解讀:MyAddin.Run(this) 與 VSTA 生命週期

     編輯:程式設計綜合問答

代碼結構分析

[AddIn("S", Version="4", Publisher="aaa", Description="...")]
public partial class ISTARSServices : STARS.InternalInterfaces.VSTAItf.ISTARSServices {
    private MyAddin m_MyAddin;

    private void ISTARSServices_Startup(object sender, EventArgs e) {
        m_MyAddin = new MyAddin();
        m_MyAddin.Run(this);  // 關鍵:將宿主服務實例傳遞給插件核心
    }

    private void ISTARSServices_Shutdown(object sender, EventArgs e) {
        (m_MyAddin as IDisposable)?.Dispose(); // 清理資源
    }
}

關鍵點

  1. VSTA (Visual Studio Tools for Applications):宿主應用集成腳本/插件框架,ISTARSServices 為 VSTA 生成的宿主服務類。
  2. Startup/Shutdown 對應插件加載/卸載生命週期。
  3. MyAddin.Run(this):將實現了 ISTARSServices 接口的宿主實例傳給插件核心,插件通過該接口調用宿主 API (如訪問文檔、UI、設備)。
  4. IDisposable:插件核心實現釋放非托管資源 (設備句柄、線程、連接)。

STARS 是什麼?

推測為某工業/測控軟件平台 (如 STAR(S) CCM+、National Instruments TestStand 等) 的自動化接口命名空間。具體需查閱對應 SDK 文檔。

學習建議

  • 閱讀宿主應用的 VSTA/AddIn SDK 文檔,理解 ISTARSServices 暴露的方法/屬性/事件。
  • 查看 MyAddin 類源碼 (若開源) 或反編譯,掌握 Run 內部邏輯。
  • 掌握 System.AddIn (MAF) 與 VSTA 區別:前者獨立進程隔離,後者進程內腳本宿主。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved