Een .NET Framework-assembly verpakken voor COM

Opmerking

In dit artikel wordt .NET Framework COM-interop-richtlijnen beschreven die gebruikmaken van verouderde hulpprogramma's en implementatiemodellen, zoals Tlbexp.exe, Regasm.exe, Regsvcs.exe, de algemene assemblycache en com-registratie op basis van een register. Voor moderne .NET gebruikt u COM-brongeneratie of de ComWrappers API. Zie COM-interop voor meer informatie.

COM-ontwikkelaars kunnen profiteren van de volgende informatie over de beheerde typen die ze in hun toepassing willen opnemen:

  • Een lijst met typen die COM-toepassingen kunnen gebruiken

    Sommige beheerde typen zijn onzichtbaar voor COM; sommige zijn zichtbaar, maar niet maakbaar; en sommige zijn zowel zichtbaar als maakbaar. Een assembly kan bestaan uit elke combinatie van onzichtbare, zichtbare, niet-creëerbare en creëerbare typen. Voor volledigheid identificeert u de typen in een assembly die u aan COM wilt blootstellen, met name wanneer deze typen een subset vormen van de typen die worden blootgesteld aan .NET.

    Voor meer informatie, zie Kwalificerende .NET-typen voor interoperation.

  • Instructies voor versiebeheer

    Beheerde klassen die de klasse-interface (een door COM-interop gegenereerde interface) implementeren, zijn onderhevig aan versiebeperkingen.

    Zie Inleiding tot de klasse-interface voor richtlijnen voor het gebruik van de klasse-interface.

  • Implementatie-instructies

    Voor .NET Framework kunnen assemblies met een sterke naam die door een uitgever zijn ondertekend, worden geïnstalleerd in de algemene assembly-cache. Niet-ondertekende assemblies moeten als privéassemblies op de computer van de gebruiker worden geïnstalleerd.

    Zie Beveiligingsoverwegingen voor assembly's voor meer informatie.

  • Insluiting van typebibliotheek

    Voor de meeste typen is een typebibliotheek vereist wanneer deze wordt gebruikt door een COM-toepassing. U kunt een typebibliotheek genereren of COM-ontwikkelaars deze taak laten uitvoeren. De Windows SDK biedt de volgende opties voor het genereren van een typebibliotheek:

    Ongeacht het mechanisme dat u kiest, worden alleen openbare typen die zijn gedefinieerd in de assembly die u opgeeft, opgenomen in de gegenereerde typebibliotheek.

Zie voor instructies Hoe u: Typebibliotheken insluit als Win32-resources in .NET-gebaseerde applicaties.

Type bibliotheekexporteur

De typebibliotheekexporteur (Tlbexp.exe) is een opdrachtregelprogramma waarmee de klassen en interfaces in een assembly worden geconverteerd naar een COM-typebibliotheek. Zodra de typegegevens van de klasse beschikbaar zijn, kunnen COM-clients een exemplaar van de .NET-klasse maken en de methoden van het exemplaar aanroepen, net zoals het een COM-object is. Tlbexp.exe converteert een hele assembly tegelijk. U kunt Tlbexp.exe niet gebruiken om typegegevens te genereren voor een subset van de typen die in een assembly zijn gedefinieerd.

TypeLibConverter-klasse

De TypeLibConverter klasse, die zich in de naamruimte System.Runtime.Interop bevindt, converteert de klassen en interfaces in een assembly naar een COM-typebibliotheek. Deze API produceert dezelfde typegegevens als de typebibliotheekexporteur, zoals beschreven in de vorige sectie.

De Klasse TypeLib Converter implementeert de ITypeLibConverter.

Hulpprogramma voor assemblyregistratie

Het hulpprogramma voor assemblyregistratie (Regasm.exe) kan een typebibliotheek genereren en registreren wanneer u de optie /tlb: toepast. COM-clients vereisen dat typebibliotheken worden geïnstalleerd in het Windows-register. Zonder deze optie registreert Regasm.exe alleen de typen in een assembly, niet de typebibliotheek. Het registreren van de typen in een samenstelling en het registreren van de typebibliotheek zijn afzonderlijke activiteiten.

.NET Services-installatieprogramma

Het .NET Services-installatieprogramma (Regsvcs.exe) voegt beheerde klassen toe aan Windows 2000 Component Services en combineert verschillende taken binnen één hulpprogramma. Naast het laden en registreren van een assembly kan Regsvcs.exe de typebibliotheek genereren, registreren en installeren in een bestaande COM+ 1.0-toepassing.

Zie ook