Równoważność typów i osadzone typy międzyoperacja

Począwszy od programu .NET Framework 4, środowisko uruchomieniowe języka wspólnego obsługuje osadzanie informacji o typach typów dla typów COM bezpośrednio w zarządzanych zestawach, zamiast wymagać od zarządzanych zestawów uzyskiwania informacji o typach dla typów COM z zestawów międzyoperacyjnych. Ponieważ informacje o typie osadzonym zawierają tylko typy i elementy członkowskie, które są faktycznie używane przez zestaw zarządzany, dwa zarządzane zestawy mogą mieć bardzo różne widoki tego samego typu MODELU COM. Każdy zarządzany zestaw ma inny Type obiekt reprezentujący jego widok typu COM. Środowisko uruchomieniowe języka wspólnego obsługuje równoważność typów między tymi różnymi widokami dla interfejsów, struktur, wyliczenia i delegatów.

Równoważność typu oznacza, że obiekt COM przekazywany z jednego zarządzanego zestawu do innego może być rzutowany do odpowiedniego typu zarządzanego w zestawie odbierającego.

Uwaga

Równoważność typów i osadzone typy międzyoperacyjności upraszczają wdrażanie aplikacji i dodatków korzystających ze składników COM, ponieważ nie jest konieczne wdrażanie zestawów międzyoperacyjnych z aplikacjami. Deweloperzy udostępnionych składników COM nadal muszą tworzyć podstawowe zestawy międzyoperacyjne (PIA), jeśli chcą, aby ich składniki były używane przez wcześniejsze wersje programu .NET Framework.

Równoważność typów

Równoważność typów COM jest obsługiwana w przypadku interfejsów, struktur, wyliczenia i delegatów. Typy MODELU COM kwalifikują się jako równoważne, jeśli spełnione są wszystkie następujące elementy:

  • Typy to zarówno interfejsy, jak i obie struktury albo oba wyliczenia lub oba delegaty.

  • Typy mają taką samą tożsamość, jak opisano w następnej sekcji.

  • Oba typy kwalifikują się do równoważności typów, zgodnie z opisem w sekcji Oznaczanie typów COM dla równoważności typów.

Tożsamość typu

Dwa typy są określane jako takie same, gdy ich zakresy i tożsamości są zgodne, innymi słowy, jeśli każdy z nich ma TypeIdentifierAttribute atrybut, a dwa atrybuty mają pasujące Scope i Identifier właściwości. Porównanie jest Scope niewrażliwe na wielkość liter.

Jeśli typ nie ma atrybutu TypeIdentifierAttribute lub jeśli ma TypeIdentifierAttribute atrybut, który nie określa zakresu i identyfikatora, typ można nadal uznać za równoważność w następujący sposób:

Oznaczanie typów COM dla równoważności typów

Typ można oznaczyć jako uprawniony do równoważności typu na dwa sposoby:

Zobacz też