Exemplarische Vorgehensweise: Verwenden von /clr:pure-Features
Aktualisiert: November 2007
In dieser exemplarische Vorgehensweise wird die Verwendung der Reflektion in reinen MSIL-Anwendungen veranschaulicht. Die Windows Forms-Projektmappe Scribble ist um einige systemeigene Klassen erweitert worden, die statische Daten enthalten und Windows Forms-Steuerelemente verfügbar machen, die im Windows Forms-Designer verwendbar sein müssen. Das Erstellen des Beispiels mit der /clr:pure-Option geht auf potenzielle Probleme bei diesem Szenario ein. Weitere Informationen finden Sie unter Gewusst wie: Migrieren auf /clr:pure.
Vorbereitungsmaßnahmen
ScribbleDotNET-Beispiel: Erweitern der Scribble-Anwendung um CLR-Features
So erstellen Sie diese Beispielanwendung und führen sie aus
Laden Sie das Beispiel ScribbleDotNET herunter.
Öffnen Sie die Projektmappendatei Scribble.sln in der Visual Studio-Entwicklungsumgebung.
Erstellen Sie die Projektmappe entweder mit der CLR-Pure-Debugkonfiguration oder der CLR-Pure-Releasekonfiguration.
Öffnen Sie die StringDialog.h-Komponente im Entwurfsmodus.
Das angezeigte Entwurfsfenster enthält eine Instanz von "ScribbleCustomControl".
Technologien
Neue C++-Syntax für .NET
Reflektion
marshal_as<T> für Zugriff aus verwalteten Klassen auf systemeigene Typen
In diesem Beispiel wird eine nicht verwaltete Klasse erstellt und in eine verwaltete Steuerelementklasse eingebunden. Nach der Kompilierung in eine reine MSIL-Anwendung kann der Windows Forms-Designer von Visual Studio über die sich ergebende EXE-Datei reflektieren und das verwaltete Steuerelement zur Verwendung im Windows Forms-Designer laden. Dies ist nur möglich, wenn die aktuelle Konfiguration eine reine MSIL-Anwendung erstellt, nicht aber im nicht verwalteten oder gemischten Modus.
Innerhalb des Steuerelements wird eine Instanz einer systemeigenen Klasse instanziiert. Die Information, die benötigt wird, ist eine systemeigene Zeichenfolge. Mit marshal_as<T> werden die Daten in einen verwalteten Datentyp konvertiert, der in einer CLR-aktivierten Anwendung verwendet werden kann. Weitere Informationen über die Marshallingbibliothek finden Sie unter Overview of Marshaling in C++.
Siehe auch
Konzepte
Language Features for Targeting the CLR