Kapitel 13. Reflexion

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Die CLR weiß sehr viel über die Typen, die unsere Programme definieren und verwenden. Sie verlangt von allen Assemblies, dass sie detaillierte Metadaten bereitstellen, die jedes Mitglied jedes Typs beschreiben, einschließlich privater Implementierungsdetails. Sie verlässt sich auf diese Informationen, um wichtige Funktionen wie die JIT-Kompilierung und die Speicherbereinigung durchzuführen. Allerdings behält sie dieses Wissen nicht für sich. Die Reflection-API ermöglicht den Zugriff auf diese detaillierten Typinformationen, so dass dein Code alles entdecken kann, was die Laufzeitumgebung sehen kann. Außerdem kannst du Reflection nutzen, um etwas zu bewirken. Ein Reflection-Objekt, das eine Methode repräsentiert, beschreibt zum Beispiel nicht nur den Namen und die Signatur der Methode, sondern ermöglicht es dir auch, die Methode aufzurufen. Und du kannst sogar noch weiter gehen und Code zur Laufzeit generieren.

Reflection ist besonders in erweiterbaren Frameworks nützlich, weil sie damit ihr Verhalten zur Laufzeit an die Struktur deines Codes anpassen können. Wenn du also eine Komponente schreibst, die auf einer Design-Oberfläche, z. B. einem UI-Element, erscheinen kann, musst du nichts Besonderes tun, um ihre Eigenschaften für die Bearbeitung verfügbar zu machen - Visual Studio findet sie automatisch.

Hinweis

Viele reflexionsbasierte ...

Get C# 8.0 programmieren now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.