Dela via


Gör så här: Registrera primära interop-sammansättningar

Klasser kan endast ordnas med COM-interop och är alltid marshalled som gränssnitt. I vissa fall kallas det gränssnitt som används för att konvertera klassen klassgränssnittet. Information om hur du åsidosättar klassgränssnittet med ett valfritt gränssnitt finns i COM Callable Wrapper.

Även om alla utvecklare som vill använda COM-typer från ett .NET Framework-program kan generera en interop-sammansättning, skapar detta ett problem. Varje gång en utvecklare importerar och signerar ett COM-typbibliotek skapar utvecklaren en uppsättning unika typer som inte är kompatibla med dem som importeras och signeras av en annan utvecklare. Lösningen på den här typen av inkompatibilitetsproblem är att varje utvecklare hämtar den leverantörslevererade och signerade primära interop-sammansättningen.

Om du planerar att exponera COM-typer från tredje part för andra program använder du alltid den primära interop-sammansättningen som tillhandahålls av samma utgivare som det typbibliotek som definieras. Förutom att tillhandahålla garanterad typkompatibilitet anpassas ofta primära interop-sammansättningar av leverantören för att förbättra samverkan.

Även om du inte planerar att exponera COM-typer från tredje part kan det underlätta uppgiften att samverka med COM-komponenter med hjälp av den primära interop-sammansättningen. Den här strategin ger dock ingen isolering från ändringar som en leverantör kan göra för typer som definierats i en primär interop-sammansättning. När programmet kräver sådan isolering genererar du en egen interop-sammansättning i stället för att använda den primära interop-sammansättningen.

Du måste registrera alla hämtade primära interop-sammansättningar på utvecklingsdatorn innan du kan referera till dem med Visual Studio. Visual Studio söker efter och använder en primär interop-sammansättning första gången du refererar till en typ från ett COM-typbibliotek. Om Visual Studio inte kan hitta den primära interop-sammansättningen som är associerad med typbiblioteket uppmanas du att hämta den eller erbjuder dig att skapa en interop-sammansättning i stället. På samma sätt använder typbiblioteksimportören (Tlbimp.exe) även registret för att hitta primära interop-sammansättningar.

Även om det inte är nödvändigt att registrera primära interop-sammansättningar såvida du inte planerar att använda Visual Studio, ger registreringen två fördelar:

  • En registrerad primär interop-sammansättning är tydligt markerad under registernyckeln för det ursprungliga typbiblioteket. Registrering är det bästa sättet för dig att hitta en primär interop-sammansättning på datorn.

  • Du kan undvika att oavsiktligt generera och använda en ny interop-sammansättning om du någon gång i framtiden använder Visual Studio för att referera till en typ som du har en oregistrerad primär interop-sammansättning för.

Använd verktyget för sammansättningsregistrering (Regasm.exe) för att registrera en primär interop-sammansättning.

Registrera en primär interop-sammansättning

  1. Skriv i kommandotolken:

    regasmassemblyname

    I det här kommandot är assemblyname filnamnet för den sammansättning som är registrerad. Regasm.exe lägger till en post för den primära interop-sammansättningen under samma registernyckel som det ursprungliga typbiblioteket.

Exempel

I följande exempel registreras den CompanyA.UtilLib.dll primära interop-sammansättningen.

regasm CompanyA.UtilLib.dll

Se även