Anpassen von Standardwrappern
Hier finden Sie eine Beschreibung zur benutzerdefinierten Anpassung von Standard-RCWs und CCWs (COM Callable Wrapper).
Runtime Callable Wrapper (RCW)
Wenn ein .NET-Client ein COM-Objekt aktiviert, generiert Common Language Runtime eine Instanz des RCW (Runtime Callable Wrapper), um den COM-Typ zu umschließen. Wie die folgende Abbildung zeigt, verwendet Common Language Runtime die von einer importierten COM-Typbibliothek erhaltenen Metadaten, um den RCW zu generieren. Der Wrapper marshallt Daten entsprechend den Regeln, die vom Interop-Marshalldienst festgelegt wurden.
RCW-Generierung und Methodenaufruf
Es gibt zwei Arten der benutzerdefinierten Anpassung eines RCWs. Wenn Sie die IDL (Interface Definition Language)-Quelle verändern können, können Sie die TLB (Type Library File)-Attribute anwenden und die Typbibliothek importieren. Alternativ dazu können Sie auch Interop-spezifische Attribute anwenden, um Typen zu importieren und eine neue Assembly zu generieren. Die Unterstützung benutzerdefinierter Standard-RCWs wird durch diese Attribute eingeschränkt. Entsprechende Anweisungen finden Sie unter Gewusst wie: Anpassen von durch die Laufzeit aufrufbaren Wrappern.
COM Callable Wrapper (CCW)
.NET Framework-Objekte werden COM gegenüber durch einen CCW (COM Callable Wrapper) verfügbar gemacht. Durch Kompilieren eines verwalteten Projekts in eine Assembly-DLL werden automatisch die erforderlichen Metadaten erstellt, um jeden Typ in der Assembly beschreiben zu können. Immer wenn ein COM-Client ein verwaltetes Objekt aktiviert, generiert Common Language Runtime mithilfe dieser Metadaten einen CCW.
Zur benutzerdefinierten Anpassung eines CCWs wenden Sie die Interop-spezifischen Attribute auf den Quellcode an, und kompilieren Sie die Quelle in eine Assembly, wie in der folgenden Abbildung dargestellt. In diesem Beispiel werden verwaltete Typen von Tlbexp.exe in COM konvertiert.
CCW-Generierung und Methodenaufruf
Durch Anwendung von Attributen auf den Code können Sie das Marshallverhalten von Schnittstelle und Daten innerhalb der Grenzen des Interop-Marshalldienstes ändern. Sie können z. B. das Format der Daten steuern, die als Argument einer Methode übergeben werden. Sie können auch steuern, welche Typen in einer Assembly für COM verfügbar gemacht werden.
Siehe auch
Aufgaben
Gewusst wie: Anpassen von durch die Laufzeit aufrufbaren Wrappern
Referenz
Tlbimp.exe (Type Library Importer-Tool)
Ildasm.exe (MSIL Disassembler-Tool)
Konzepte
Runtime Callable Wrapper (RCW)
Anwenden von Interop-Attributen
Weitere Ressourcen
Zusammenfassung: Konvertieren einer Typbibliothek in eine Assembly
Zusammenfassung: Konvertieren einer Assembly in eine Typbibliothek