Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Vanaf .NET Framework 4 ondersteunt de algemene taalruntime het insluiten van typegegevens voor COM-typen rechtstreeks in beheerde assembly's, in plaats van dat de beheerde assembly's typegegevens moeten verkrijgen voor COM-typen uit interopassembly's. Omdat de ingesloten typegegevens alleen de typen en leden bevatten die daadwerkelijk worden gebruikt door een beheerde assembly, kunnen twee beheerde assembly's zeer verschillende weergaven van hetzelfde COM-type hebben. Elke beheerde assembly heeft een ander Type object om zijn voorstelling van het COM-type te vertegenwoordigen. De Common Language Runtime ondersteunt equivalentie van typen tussen de verschillende weergaven van interfaces, structuren, opsommingen en gedelegeerden.
Type-gelijkwaardigheid betekent dat een COM-object dat van de ene beheerde assembly naar een andere wordt doorgegeven, kan worden omgezet in het juiste beheerde type in de ontvangende assembly.
Opmerking
Type-equivalentie en ingesloten interoperabiliteitstypen vereenvoudigen de implementatie van toepassingen en invoegtoepassingen die gebruikmaken van COM-onderdelen, omdat het niet nodig is om interop-assembly's met de toepassingen te implementeren. Ontwikkelaars van gedeelde COM-onderdelen moeten nog steeds primaire interopassembly's (PIA's) maken als ze willen dat hun onderdelen worden gebruikt door eerdere versies van .NET Framework.
Gelijkwaardigheid van type
Gelijkwaardigheid van COM-typen wordt ondersteund voor interfaces, structuren, opsommingen en gemachtigden. COM-typen komen in aanmerking als gelijkwaardig als alle volgende waar zijn:
De typen zijn ofwel beide interfaces, beide structuren, beide opsommingen, of beide delegaten.
De typen hebben dezelfde identiteit, zoals beschreven in de volgende sectie.
Beide typen zijn geschikt voor typegelijkwaardigheid, zoals beschreven in de Markering van COM-typen voor typegelijkwaardigheid.
Type-identiteit
Twee typen worden als hetzelfde beschouwd wanneer hun scopes en identiteiten overeenkomen, met andere woorden, als ze elk het TypeIdentifierAttribute kenmerk hebben en de twee kenmerken overeenkomende Scope en Identifier eigenschappen hebben. De vergelijking voor Scope is niet hoofdlettergevoelig.
Als een type het TypeIdentifierAttribute kenmerk niet heeft of als het een TypeIdentifierAttribute kenmerk heeft dat geen bereik en id opgeeft, kan het type nog steeds als volgt beschouwd worden voor gelijkwaardigheid:
Voor interfaces wordt de waarde van de GuidAttribute eigenschap gebruikt in plaats van de TypeIdentifierAttribute.Scope eigenschap en wordt de Type.FullName eigenschap (dat wil gezegd de naam van het type, inclusief de naamruimte), gebruikt in plaats van de TypeIdentifierAttribute.Identifier eigenschap.
Voor structuren, opsommingen en gedelegeerden wordt het GuidAttribute van de ingesloten assembly gebruikt in plaats van de Scope eigenschap, en wordt de Type.FullName eigenschap gebruikt in plaats van de Identifier eigenschap.
COM-typen markeren voor gelijkwaardigheid van typen
U kunt een type op twee manieren markeren als in aanmerking komen voor type-equivalentie:
Pas het TypeIdentifierAttribute kenmerk toe op het type.
Maak van het type een COM-importtype. Een interface is een COM-importtype als deze het ComImportAttribute kenmerk heeft. Een interface, structuur, opsomming of gemachtigde is een COM-importtype als de assembly waarin deze is gedefinieerd, het ImportedFromTypeLibAttribute kenmerk heeft.