War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Wichtig Dieses Dokument enthält ggf. nicht die bewährten Methoden für die aktuelle Entwicklung. Außerdem sind Links zu Downloads und anderen Ressourcen u. U. nicht mehr gültig. Die aktuell empfohlene Version finden Sie hier.

Interoperabilität (C#-Programmierhandbuch)

Interoperabilität bietet Ihnen die Möglichkeit, Ihre vorhandenen Investitionen in nicht verwalteten Code zu erhalten und weiterhin einzusetzen. Code, der unter der Kontrolle der Common Language Runtime (CLR) ausgeführt wird, wird als "verwalteter Code" bezeichnet. Im Gegensatz dazu wird "nicht verwalteter Code" außerhalb der CLR ausgeführt. Beispiele für nicht verwalteten Code sind COM, COM+, C++-Komponenten, ActiveX-Komponenten und die Win32-API.

.NET Framework ermöglicht durch Plattformaufrufdienste, den System.Runtime.InteropServices-Namespace, die CLR und durch COM-Interoperabilität (COM-Interop) die Interoperabilität mit nicht verwaltetem Code.

  • Es gibt zwei Möglichkeiten, aus verwaltetem Code heraus nicht verwaltete APIs zu verwenden: durch Plattformaufruf und durch It Just Works (IJW) in C++. Mit dem Plattformaufruf ist es möglich, von verwaltetem Code aus Funktionen aufzurufen, die aus einer nicht verwalteten DLL (Dynamic Link Library) wie einer Win32-API- oder einer benutzerdefinierten DLL exportiert werden. Die CLR sorgt für das Laden der benötigten DLLs und behandelt das Parametermarshalling. Aus Leistungsgründen sollten Sie jedoch vor Verwendung des Plattformaufrufs überprüfen, ob in .NET Framework eine entsprechende Funktion verfügbar ist. Weitere Informationen finden Sie unter Genauere Betrachtung von Plattformaufrufen.

  • COM-Interop ermöglicht es verwaltetem Code, über Schnittstellen und COM-Clients mit COM-Objekten zu interagieren. Es gibt zwei Möglichkeiten, COM-Komponenten von verwaltetem Code aus zu verwenden:

    • Für den Aufruf von COM-Komponenten, die mit der OLE-Automatisierung kompatibel sind, können Sie COM-Interop oder tlbimp.exe verwenden. Die CLR behandelt dann die Aktivierung von COM-Komponenten und das Parametermarshaling.

    • Für IDL-basierte COM-Komponenten können Sie IJW und C++ verwenden. Jede öffentliche verwaltete Klasse, die IUnknown, IDispatch und weitere COM-Standardschnittstellen implementiert, kann mithilfe von COM-Interop von nicht verwaltetem Code aus aufgerufen werden. Weitere Informationen finden Sie unter Microsoft .NET/COM-Migration und -Interoperabilität.

Weitere Informationen finden Sie unter Interaktion mit nicht verwaltetem Code und Verbessern der Interoperabilitätsleistung.

Sowohl der Plattformaufruf als auch COM-Interop verwenden Marshalling, um Argumente wie zum Beispiel ganzzahlige Werte, Zeichenfolgen, Arrays, Strukturen und Zeiger zwischen verwaltetem und nicht verwaltetem Code zu übersetzen. Weitere Informationen finden Sie unter Übersicht über das Interop-Marshalling.

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 10.5.7 Externe Methoden

  • 17.5 Attribute für Interoperation

  • 18.8 Dynamische Speicherreservierung

Anzeigen:
© 2015 Microsoft