Een interoperabiliteitstoepassing implementeren
Een interoperabiliteitstoepassing bevat doorgaans een .NET-clientassembly, een of meer interop-assembly's die verschillende COM-typebibliotheken vertegenwoordigen en een of meer geregistreerde COM-onderdelen. Visual Studio en de Windows SDK bieden hulpprogramma's voor het importeren en converteren van een typebibliotheek naar een interoperabiliteitsassembly, zoals besproken in het importeren van een typebibliotheek als een assembly. Er zijn twee manieren om een interoperabiliteitstoepassing te implementeren:
Met behulp van ingesloten interoperabiliteitstypen: Vanaf .NET Framework 4 kunt u de compiler instrueren om typegegevens van een interop-assembly in te sluiten in uw uitvoerbare bestand. De compiler sluit alleen de typegegevens in die door uw toepassing worden gebruikt. U hoeft de interop-assembly niet met uw toepassing te implementeren. Dit is de aanbevolen techniek.
Door interop-assembly's te implementeren: u kunt een standaardverwijzing naar een interop-assembly maken. In dit geval moet de interop-assembly worden geïmplementeerd met uw toepassing. Als u deze techniek gebruikt en u geen privé-COM-onderdeel gebruikt, verwijst u altijd naar de primaire interopassembly (PIA) die is gepubliceerd door de auteur van het COM-onderdeel dat u in uw beheerde code wilt opnemen. Zie Primaire interop-assembly's voor meer informatie over het produceren en gebruiken van primaire interop-assembly's.
Als u ingesloten interoperabiliteitstypen gebruikt, is de implementatie eenvoudig en eenvoudig. Er is niets speciaals dat je hoeft te doen. In de rest van dit artikel worden de scenario's beschreven voor het implementeren van interoperabiliteitsassembly's met uw toepassing.
Interop-assembly's implementeren
Assembly's kunnen sterke namen hebben. Een sterk benoemde assembly bevat de openbare sleutel van de uitgever, die een unieke identiteit biedt. Assembly's die worden geproduceerd door typebibliotheekimporteur (Tlbimp.exe) kunnen worden ondertekend door de uitgever met behulp van de optie /keyfile . U kunt ondertekende assembly's installeren in de globale assemblycache. Niet-ondertekende assembly's moeten als privéassembly's op de computer van de gebruiker worden geïnstalleerd.
Privéassembly's
Als u een assembly wilt installeren die privé moet worden gebruikt, moeten zowel het uitvoerbare bestand van de toepassing als de interop-assembly met geïmporteerde COM-typen worden geïnstalleerd in dezelfde mapstructuur. In de volgende afbeelding ziet u een niet-ondertekende interop-assembly die privé moet worden gebruikt door Client1.exe en Client2.exe, die zich in afzonderlijke toepassingsmappen bevinden. De interop-assembly, die in dit voorbeeld LOANLib.dll wordt genoemd, wordt tweemaal geïnstalleerd.
Alle COM-onderdelen die aan de toepassing zijn gekoppeld, moeten worden geïnstalleerd in het Windows-register. Als Client1.exe en Client2.exe in de afbeelding op verschillende computers zijn geïnstalleerd, moet u de COM-onderdelen op beide computers registreren.
Gedeelde assembly's
Assembly's die door meerdere toepassingen worden gedeeld, moeten worden geïnstalleerd in een gecentraliseerde opslagplaats, de algemene assemblycache genoemd. .NET-clients hebben toegang tot dezelfde kopie van de interop-assembly, die is ondertekend en geïnstalleerd in de globale assemblycache. Zie Primaire interop-assembly's voor meer informatie over het produceren en gebruiken van primaire interop-assembly's.