C#4.0新增功能04 嵌入的互操做類型

從 .NET Framework 4 開始,公共語言運行時支持將 COM 類型的類型信息直接嵌入到託管程序集中,而不要求託管程序集從互操做程序集中獲取 COM 類型的類型信息。 因爲嵌入式類型信息僅包含託管程序集實際使用的類型和成員,所以兩個託管程序集可能具備相同 COM 類型的不一樣視圖。 每一個託管程序集都有不一樣的 Type 對象來表示其 COM 類型視圖。公共語言運行時支持接口、結構、枚舉和委託等不一樣視圖之間的類型等效性。html

類型等效性意味着從一個託管程序集傳遞到另外一個託管程序集的 COM 對象能夠轉換爲接收程序集中適當的託管類型。api

類型等效性和嵌入式互操做類型簡化了使用 COM 組件的應用程序和加載項的部署,由於無需與應用程序一塊兒部署互操做程序集。 若是共享 COM 組件的開發人員但願較早版本的 .NET Framework 使用其組件,他們仍須建立主互操做程序集 (PIA)。ide

類型等效性

COM 類型的等效性支持接口、結構、枚舉和委託。 若是知足如下全部條件,則 COM 類型符合等效條件:ui

  • 類型是兩個接口、兩個結構、兩個枚舉或兩個委託。spa

  • 類型具備相同標識,以下節所述。htm

  • 兩種類型都符合類型等效性,如針對類型等效性標記 COM 類型部分所述。對象

類型標識

範圍和標識匹配時,肯定兩種類型具備相同標識,換句話說,若是它們各自具備 TypeIdentifierAttribute 屬性,而且兩個屬性都具備匹配的 Scope 和 Identifier 屬性。 Scope的比較不區分大小寫。blog

若是一個類型不具備 TypeIdentifierAttribute 屬性,或者若是它有一個不指定範圍和標識符的 TypeIdentifierAttribute 屬性,仍可將該類型視爲等效性,以下所示:接口

針對類型等效性標記 COM 類型

可經過兩種方式將類型標記爲符合類型等效性:

請參閱

 

相關文章
相關標籤/搜索