Note
此指引針對 .NET 框架專屬。 對於現代 .NET COM Interop,請使用原始碼產生的 COM Interop 或 System.Runtime.InteropServices.ComWrappers API。 欲了解更多資訊,請參閱 COM 互操作概述 及 COM 來源產生。
類別只能透過 COM 互通操作來封送,並且一律會封送為介面。 在某些情況下,用於封送處理該類別的介面稱為類別介面。 如需了解如何使用您所選擇的介面覆寫類別介面的相關資訊,請參閱 COM 可呼叫包裝函式。
雖然想要從 .NET Framework 應用程式使用 COM 類型的任何開發人員都可以產生 Interop 組件,但這樣做會有問題。 每當開發人員匯入及簽署 COM 類型程式庫時,該開發人員會建立一組唯一類型,而這些類型會與另一個開發人員匯入及簽署的類型不相容。 這個類型不相容問題的解決方法可讓每個開發人員取得廠商提供及簽署的主要 Interop 組件。
如果您打算將第三方 COM 類型公開給其他應用程式,請一律使用由定義該類型程式庫的相同發行者所提供的主要 Interop 組件。 除了提供保證的類型相容性,廠商也常常會自訂主要 Interop 組件來增強互通性。
即使您不打算對外公開第三方 COM 類型,使用主要 Interop 組件也能讓與 COM 元件互通的工作更為簡便。 不過,這個策略無法避免廠商對主要 Interop 組件中定義的類型所做變更帶來的影響。 當您的應用程式需要這類隔離時,請產生您自己的 Interop 組件,而不要使用主要 Interop 組件。
您必須先在開發電腦上註冊所有取得的主要 Interop 組件,才能使用 Visual Studio 來加以參考。 Visual Studio 會在您第一次參考 COM 類型程式庫中的某個型別時,尋找並使用主要 Interop 組件。 如果 Visual Studio 找不到與類型程式庫相關聯的主要 Interop 組件,它會提示您取得該組件,或是提供您建立 Interop 組件的方式。 同樣地,型別程式庫匯入工具 (Tlbimp.exe) 也會使用登錄來找出主要 Interop 組件。
雖然除非您打算使用 Visual Studio,否則並不需要註冊主要 Interop 組件,但註冊有兩個優點:
- 已註冊的主要 Interop 組件會明確標示在原始類型程式庫的登錄機碼底下。 註冊是您在電腦上尋找主要 Interop 組件的最佳方式。
- 如果您在未來某個時候確實會使用 Visual Studio 來參考某個型別,而該型別的主要 Interop 組件尚未註冊,就可以避免意外地產生和使用新的 Interop 組件。
使用組件註冊工具 (Regasm.exe) 來註冊主要 Interop 組件。
註冊主要 Interop 組件
若要註冊主要互操作組件,請在命令提示字元輸入:
regasm <assemblyname>
在這個命令中,assemblyname 是已註冊組件的檔案名稱。 Regasm.exe 會在與原始類型程式庫相同的登錄機碼下,新增主要互通操作組件的項目。
範例
下列範例會註冊 CompanyA.UtilLib.dll 主要 Interop 組件。
regasm CompanyA.UtilLib.dll