Share via


Procedure: Primaire interop-assembly's registreren

Klassen kunnen alleen worden ge marshalld door COM-interop en worden altijd marshalled als interfaces. In sommige gevallen wordt de interface die wordt gebruikt om de klasse te marshalen, de klasse-interface genoemd. Zie COM Callable Wrapper voor informatie over het overschrijven van de klasse-interface met een interface van uw keuze.

Hoewel elke ontwikkelaar die COM-typen van een .NET Framework-toepassing wil gebruiken, een interop-assembly kan genereren, is dit een probleem. Telkens wanneer een ontwikkelaar een COM-typebibliotheek importeert en ondertekent, maakt de ontwikkelaar een set unieke typen die niet compatibel zijn met de typen die zijn geïmporteerd en ondertekend door een andere ontwikkelaar. De oplossing voor dit type incompatibiliteitsprobleem is voor elke ontwikkelaar om de door de leverancier geleverde en ondertekende primaire interop-assembly te verkrijgen.

Als u van plan bent om COM-typen van derden beschikbaar te maken voor andere toepassingen, gebruikt u altijd de primaire interop-assembly die wordt geleverd door dezelfde uitgever als de typebibliotheek die wordt gedefinieerd. Naast gegarandeerde typecompatibiliteit worden primaire interoperabiliteitsassembly's vaak aangepast door de leverancier om de interoperabiliteit te verbeteren.

Zelfs als u geen COM-typen van derden beschikbaar wilt maken, kan het gebruik van de primaire interop-assembly de taak van het samenwerken met COM-onderdelen vereenvoudigen. Deze strategie biedt echter geen isolatie van wijzigingen die een leverancier kan aanbrengen in typen die zijn gedefinieerd in een primaire interoperabiliteitsassembly. Wanneer uw toepassing dergelijke isolatie vereist, genereert u uw eigen interoperabiliteitsassembly in plaats van de primaire interoperabiliteitsassembly te gebruiken.

U moet alle aangeschafte primaire interop-assembly's registreren op uw ontwikkelcomputer voordat u ernaar kunt verwijzen met Visual Studio. Visual Studio zoekt en gebruikt een primaire interoperabiliteitsassembly de eerste keer dat u naar een type uit een COM-typebibliotheek verwijst. Als Visual Studio de primaire interop-assembly die is gekoppeld aan de typebibliotheek niet kan vinden, wordt u gevraagd deze te verkrijgen of een interop-assembly te maken. Op dezelfde manier gebruikt de Type Library Importer (Tlbimp.exe) ook het register om primaire interop-assembly's te zoeken.

Hoewel het niet nodig is om primaire interop-assembly's te registreren, tenzij u Visual Studio wilt gebruiken, biedt registratie twee voordelen:

  • Een geregistreerde primaire interoperabiliteitsassembly is duidelijk gemarkeerd onder de registersleutel van de oorspronkelijke typebibliotheek. Registratie is de beste manier om een primaire interoperabiliteitsassembly op uw computer te vinden.

  • U kunt voorkomen dat u per ongeluk een nieuwe interop-assembly genereert en gebruikt als u op een bepaald moment in de toekomst Visual Studio gebruikt om te verwijzen naar een type waarvoor u een niet-geregistreerde primaire interop-assembly hebt.

Gebruik het hulpprogramma voor assemblyregistratie (Regasm.exe) om een primaire interoperabiliteitsassembly te registreren.

Een primaire interoperabiliteitsassembly registreren

  1. Typ bij de opdrachtprompt:

    assemblynaam opnieuwgasm

    In deze opdracht is assemblyname de bestandsnaam van de assembly die is geregistreerd. Regasm.exe voegt een vermelding toe voor de primaire interop-assembly onder dezelfde registersleutel als de oorspronkelijke typebibliotheek.

Opmerking

In het volgende voorbeeld wordt de CompanyA.UtilLib.dll primaire interop-assembly geregistreerd.

regasm CompanyA.UtilLib.dll

Zie ook