In de volgende artikelen ziet u de verschillende manieren om 'systeemeigen interoperabiliteit' in .NET uit te voeren.
Er zijn enkele redenen waarom u systeemeigen code wilt aanroepen:
Besturingssystemen worden geleverd met een groot aantal API's die niet aanwezig zijn in de beheerde klassebibliotheken. Een goed voorbeeld voor dit scenario is toegang tot hardware- of besturingssysteembeheerfuncties.
Communiceren met andere onderdelen die C-stijl ABIs (systeemeigen ABI's) hebben of kunnen produceren, zoals Java-code die beschikbaar wordt gesteld via Java Native Interface (JNI) of een andere beheerde taal die een systeemeigen onderdeel kan produceren.
Op Windows registreert de meeste software die wordt geïnstalleerd, zoals de Microsoft Office suite, COM-onderdelen die hun programma's vertegenwoordigen en waarmee ontwikkelaars ze kunnen automatiseren of gebruiken. Hiervoor is ook systeemeigen interoperabiliteit vereist.
De vorige lijst bevat niet alle mogelijke situaties en scenario's waarin de ontwikkelaar interface met systeemeigen onderdelen zou willen/willen/willen. .NET-klassebibliotheek gebruikt bijvoorbeeld de systeemeigen interoperabiliteitsondersteuning om een redelijk aantal API's te implementeren, zoals consoleondersteuning en manipulatie, toegang tot bestandssysteem en andere. Het is echter belangrijk om te weten dat er indien nodig een optie is.
Notitie
De meeste voorbeelden in deze sectie worden weergegeven voor alle drie de ondersteunde platforms voor .NET Core (Windows, Linux en macOS). Voor enkele korte en illustratieve voorbeelden wordt echter slechts één voorbeeld weergegeven waarin gebruik wordt gemaakt van Windows bestandsnamen en extensies (dat wil bijvoorbeeld 'dll' voor bibliotheken). Dit betekent niet dat deze functies niet beschikbaar zijn in Linux of macOS, maar alleen voor het gemak.
Gebruik de functionaliteit uit de .NET-klassebibliotheek door methoden aan te roepen waarmee waarden worden geretourneerd, invoerparameters worden geaccepteerd en meer.
Meer informatie over het hosten van de .NET-runtime van systeemeigen code ter ondersteuning van geavanceerde scenario's waarvoor u moet bepalen hoe de .NET-runtime werkt.