Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
In dit artikel wordt .NET Framework COM-interoperabiliteitsrichtlijnen beschreven die gebruikmaken van het verouderde assemblyregistratieprogramma (Regasm.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.
U kunt een opdrachtregelprogramma uitvoeren met de naam Assembly Registration Tool (Regasm.exe) om een .NET Framework-assembly te registreren of de registratie ervan ongedaan te maken voor gebruik met COM. Regasm.exe informatie over de klasse toevoegt aan het systeemregister, zodat COM-clients de .NET Framework-klasse transparant kunnen gebruiken. De RegistrationServices klasse biedt de equivalente functionaliteit.
Voor .NET Framework moet een beheerd onderdeel worden geregistreerd in het Windows-register voordat het kan worden geactiveerd vanaf een COM-client. In de volgende tabel ziet u de sleutels die Regasm.exe doorgaans aan het Windows-register toevoegt. (000000 geeft de werkelijke GUID-waarde aan.)
| GUID | Beschrijving | Registersleutel |
|---|---|---|
| CLSID | Klasse-id | HKEY_CLASSES_ROOT\CLSID\{000…000} |
| IID | Interface-identificatie | HKEY_CLASSES_ROOT\Interface\{000…000} |
| LIBID | Bibliotheek-id | HKEY_CLASSES_ROOT\TypeLib\{000…000} |
| ProgID | Programmatische id | HKEY_CLASSES_ROOT\000…000 |
Onder de HKCR\CLSID\{0000... 0000}-sleutel, de standaardwaarde is ingesteld op de ProgID van de klasse en er worden twee nieuwe benoemde waarden, Klasse en Assembly, toegevoegd. De runtime leest de assembly-waarde uit het register en geeft deze door aan de runtime assembly-resolver. De assembly-resolver probeert de assembly te vinden op basis van assemblygegevens zoals de naam en het versienummer. De assembly-resolver moet zich op een van de volgende locaties bevinden om een assembly te vinden:
De globale assemblycache (moet een sterk benoemde assembly zijn).
In de toepassingsmap. Assembly's die vanuit het toepassingspad worden geladen, zijn alleen toegankelijk vanuit die toepassing.
Langs een bestandspad opgegeven met de /codebase optie naar Regasm.exe.
Regasm.exe maakt ook de sleutel InProcServer32 onder de HKCR\CLSID\{0000…0000} sleutel aan. De standaardwaarde voor de sleutel is ingesteld op de naam van het DLL-bestand waarmee de algemene taalruntime (Mscoree.dll) wordt geïnitialiseerd.
Registervermeldingen onderzoeken
COM-interoperabiliteit in .NET Framework biedt een standaardimplementatie van een klassenfactory om een exemplaar van een willekeurige .NET Framework-klasse te maken. Clients kunnen het beheerde DLL-bestand aanroepen DllGetClassObject om een klassefactory op te halen en objecten te maken, net zoals bij elk ander COM-onderdeel.
Voor de InprocServer32 subsleutel wordt een verwijzing naar Mscoree.dll weergegeven in plaats van een traditionele COM-typebibliotheek om aan te geven dat de algemene taalruntime het beheerde object maakt.