Megosztás a következőn keresztül:


Típusegyenlítés és beágyazott interop típusok

A 4. .NET-keretrendszer kezdve a közös nyelvi futtatókörnyezet támogatja a COM-típusok típusadatainak beágyazását közvetlenül felügyelt szerelvényekbe, ahelyett, hogy a felügyelt szerelvényeknek le kellene kérnie a COM-típusok típusadatait az interop szerelvényekből. Mivel a beágyazott típusinformációk csak a felügyelt szerelvény által ténylegesen használt típusokat és tagokat tartalmazzák, két felügyelt szerelvénynek nagyon különböző nézetei lehetnek ugyanannak a COM-típusnak. Minden felügyelt szerelvény más Type objektummal rendelkezik, amely a COM-típus nézetét jeleníti meg. A közös nyelvi futtatókörnyezet támogatja a különböző nézetek közötti típusegyenlőséget a felületek, struktúrák, enumerálások és meghatalmazottak esetében.

A típusegyenlítés azt jelenti, hogy az egyik felügyelt szerelvényről egy másikra átadott COM-objektum a fogadó szerelvény megfelelő felügyelt típusára vethető.

Feljegyzés

A típusegyenlítés és a beágyazott interop típusok leegyszerűsítik a COM-összetevőket használó alkalmazások és bővítmények üzembe helyezését, mivel nem szükséges interop szerelvényeket üzembe helyezni az alkalmazásokkal. A megosztott COM-összetevők fejlesztőinek továbbra is elsődleges interop szerelvényeket (PIA-kat) kell létrehozniuk, ha azt szeretnék, hogy az összetevőket a .NET-keretrendszer korábbi verziói használják.

Típusegyenlítés

A COM-típusok egyenértékűsége az interfészek, struktúrák, enumerálások és delegáltak esetében támogatott. A COM-típusok egyenértékűnek minősülnek, ha az alábbiak mindegyike igaz:

  • A típusok mindkét illesztő, vagy mindkét struktúra, vagy mindkét enumerálás vagy mindkét delegált.

  • A típusok azonos identitással rendelkeznek a következő szakaszban leírtak szerint.

  • Mindkét típus jogosult a típusegyenlítésre a TÍPUSegyenlítési szakasz COM-típusok megjelölésével foglalkozó szakaszában leírtak szerint.

Típusidentitás

Két típus azonos identitással rendelkezik, ha a hatókörük és az identitásuk megegyezik, vagyis ha mindegyiknek megvan az TypeIdentifierAttribute attribútuma, és a két attribútumnak egyező Scope és Identifier tulajdonságokkal kell rendelkeznie. Scope A kis- és nagybetűk összehasonlítása érzéketlen.

Ha egy típus nem rendelkezik az TypeIdentifierAttribute attribútummal, vagy olyan attribútummal rendelkezik TypeIdentifierAttribute , amely nem adja meg a hatókört és az azonosítót, a típus továbbra is egyenértékűnek tekinthető az alábbiak szerint:

COM-típusok megjelölése a típusegyenlítéshez

Egy típust kétféleképpen jelölhet meg típusegyenlítésre jogosultként:

  • Alkalmazza az TypeIdentifierAttribute attribútumot a típusra.

  • Com-importálási típussá alakíthatja a típust. Az illesztő COM-importálási típus, ha rendelkezik az ComImportAttribute attribútummal. Az interfész, a struktúra, az enumerálás vagy a delegálás COM-importálási típus, ha a definiált szerelvény rendelkezik az ImportedFromTypeLibAttribute attribútummal.

Lásd még