將 .NET 元件暴露於 COM

Note

本文說明.NET框架COM互操作指引,該指引使用舊有工具與部署模型,如 Regasm.exe、全域組合快取及基於登錄檔的COM註冊。 對於現代 .NET,請使用 COM 原始碼產生或 ComWrappers API。 欲了解更多資訊,請參閱 COM 互通。

撰寫 .NET 類型並從非受控程式碼使用該類型,對於開發人員而言是不同的活動。 本節說明撰寫與 COM 用戶端互通的 Managed 程式代碼的數個秘訣:

  • 限定互通的 .NET 類型。

    您想要公開給 COM 的所有 Managed 類型、方法、屬性、欄位和事件都必須是公用的。 類型必須具有公用無參數建構函式,這是唯一可透過 COM 叫用的建構函式。

  • 套用 Interop 屬性。

    Managed 程式碼內的自訂屬性可以增強元件的互操作性。

  • 封裝用於 COM 的組件。

    COM 開發人員可能需要摘要說明參考和部署元件所涉及的步驟。

此外,本節會識別關於從 COM 用戶端存取受控類型的相關任務。

從 COM 取用受控類型

  1. 向 COM 註冊元件。

    對於 .NET 框架,組合語言中的型別(及型態函式庫)必須在設計時註冊。 如果安裝程式未註冊組件,請指導 COM 開發人員使用 Regasm.exe。

  2. 從 COM 參考 .NET 類型。

    COM 開發人員可以使用與目前相同的工具和技術,參照組件中的類型。

  3. 呼叫 .NET 物件。

    COM 開發人員可以在 .NET 物件上呼叫方法,就像在任何 Unmanaged 類型上呼叫方法一樣。 例如,COM CoCreateInstance API 會啟用 .NET 物件。

  4. 部署應用程式以進行 COM 存取。

    對於 .NET Framework,具強式名稱的組件可以安裝在全域組件快取中,且需要其發行者的簽章。 未經強名稱命名的元件必須安裝在客戶端的應用程式目錄中。

另請參閱