Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les articles suivants montrent les différentes façons d’effectuer l'« interopérabilité native » dans .NET.
Il existe quelques raisons pour lesquelles vous souhaitez appeler du code natif :
- Les systèmes d’exploitation sont fournis avec un grand volume d’API qui ne sont pas présentes dans les bibliothèques de classes managées. Un exemple principal pour ce scénario serait l’accès aux fonctions de gestion du matériel ou du système d’exploitation.
- Communication avec d’autres composants qui ont ou peuvent produire des API de style C (ABIs natives), telles que du code Java exposé via Java Native Interface (JNI) ou tout autre langage managé pouvant produire un composant natif.
- Sur Windows, la plupart des logiciels installés, tels que la suite Microsoft Office, inscrivent des composants COM qui représentent leurs programmes et permettent aux développeurs de les automatiser ou de les utiliser. Cela nécessite également une interopérabilité native.
La liste précédente ne couvre pas toutes les situations et scénarios potentiels dans lesquels le développeur souhaite/souhaite/doit s’interfacer avec des composants natifs. Par exemple, la bibliothèque de classes .NET utilise la prise en charge de l’interopérabilité native pour implémenter un nombre équitable de ses API, telles que la prise en charge de la console et la manipulation, l’accès au système de fichiers et d’autres. Toutefois, il est important de noter qu’il existe une option si nécessaire.
Remarque
La plupart des exemples de cette section seront présentés pour les trois plateformes prises en charge pour .NET Core (Windows, Linux et macOS). Toutefois, pour quelques exemples courts et illustrants, un seul exemple montre comment utiliser des noms de fichiers et des extensions Windows (autrement dit, « dll » pour les bibliothèques). Cela ne signifie pas que ces fonctionnalités ne sont pas disponibles sur Linux ou macOS, elle a été effectuée simplement pour des raisons pratiques.