共用方式為


類型等價和內嵌互操作類型

從 .NET Framework 4 開始,Common Language Runtime 支援將 COM 類型的類型資訊直接內嵌至 Managed 元件,而不是要求 Managed 元件從 Interop 元件取得 COM 類型的類型資訊。 因為內嵌類型資訊只包含 Managed 元件實際使用的型別和成員,因此兩個 Managed 元件可能有不同的相同 COM 類型檢視。 每個受控組件都有不同的 Type 物件來表示其對 COM 類型的檢視。 公用語言執行階段支援在介面、結構、列舉和委派這些不同檢視之間的類型等價。

類型等價表示從一個 Managed 元件傳遞至另一個 Managed 元件的 COM 物件可以轉換成接收元件中適當的 Managed 類型。

備註

類型等價和內嵌 interop 類型可簡化使用 COM 元件的應用程式和外掛模組的部署,因為不需要隨應用程式部署 interop 組件。 如果共用 COM 元件的開發人員希望其元件可被舊版 .NET Framework 使用,仍必須建立主要 Interop 程式集 (PIA)。

類型等價

介面、結構、列舉和委派都支援 COM 類型的等價。 如果下列所有條件都成立,COM 類型會被視為等同:

  • 類型都是介面,或兩個結構,或兩個列舉,或兩個委派。

  • 這些類型具有相同的身分識別,如下一節所述。

  • 這兩種類型都符合類型等價的條件,如標示 COM 類型以達成類型等價章節中所提到的。

型態識別

當兩個型別的範圍和身分識別相符時,兩種類型會決定具有相同的身分識別,換句話說,如果它們各有 TypeIdentifierAttribute 屬性,而且兩個屬性都有相符 ScopeIdentifier 屬性。 Scope 的比較不區分大小寫。

如果類型沒有 TypeIdentifierAttribute 屬性,或其具有 TypeIdentifierAttribute 未指定範圍和標識符的屬性,則類型仍可視為等價,如下所示:

將 COM 類型標記為類型相等性

您可以透過兩種方式將類型標示為符合類型等價的資格:

另請參閱