Nativní interoperabilita
Následující články ukazují různé způsoby provádění "nativní interoperability" v .NET.
Existuje několik důvodů, proč byste chtěli volat nativní kód:
- Operační systémy mají velký objem rozhraní API, která nejsou k dispozici v knihovnách spravovaných tříd. Ukázkovým příkladem pro tento scénář by byl přístup k hardwarovým nebo operačním systémům.
- Komunikace s dalšími komponentami, které mají nebo můžou vytvářet rozhraní ABI ve stylu jazyka C (nativní rozhraní ABI), jako je kód Java, který je vystavený prostřednictvím rozhraní JNI (Java Native Interface) nebo jakéhokoli jiného spravovaného jazyka, který by mohl vytvořit nativní komponentu.
- Na Windows většina softwaru, který se nainstaluje, například sadu Microsoft Office, zaregistruje komponenty modelu COM, které představují své programy, a umožní vývojářům automatizovat je nebo je používat. To také vyžaduje nativní interoperabilitu.
Předchozí seznam nepokrývá všechny potenciální situace a scénáře, ve kterých by vývojář chtěl/chtěl/potřeboval rozhraní s nativními komponentami. Knihovna tříd .NET například používá nativní podporu interoperability k implementaci spravedlivého počtu jeho rozhraní API, jako je podpora konzoly a manipulace s nimi, přístup k systému souborů a další. Je ale důležité si uvědomit, že v případě potřeby existuje možnost.
Poznámka
Většina příkladů v této části se zobrazí pro všechny tři podporované platformy pro .NET Core (Windows, Linux a macOS). U některých krátkých a ilustrativních příkladů se však zobrazí jenom jedna ukázka, která používá Windows názvy souborů a rozšíření (to znamená "dll" pro knihovny). To neznamená, že tyto funkce nejsou dostupné v Linuxu nebo macOS, to bylo provedeno pouze kvůli pohodlí.