Heim > Backend-Entwicklung > C++ > Wie kann ich mithilfe von Reflection eine Klassenreferenz aus einem String in C# abrufen?

Wie kann ich mithilfe von Reflection eine Klassenreferenz aus einem String in C# abrufen?

Patricia Arquette
Freigeben: 2025-01-14 10:04:44
Original
211 Leute haben es durchsucht

How Can I Get a Class Reference from a String in C# Using Reflection?

Verwenden von Reflection zum Abrufen von C#-Klassenreferenzen aus Strings

C#-Reflexion bietet einen leistungsstarken Mechanismus für den dynamischen Zugriff auf und die Bearbeitung von Laufzeittypinformationen. Dazu gehört das Abrufen einer Klassenreferenz nur unter Verwendung ihrer Zeichenfolgendarstellung.

Der Prozess:

Die Kernmethode für diese Aufgabe ist Type.GetType(). Diese Methode akzeptiert eine Zeichenfolge, die den vollständig qualifizierten Typnamen enthält, und gibt ein Type-Objekt zurück, das diesen Typ darstellt.

Beispiel:

Angenommen, Sie haben eine Klasse mit dem Namen FooClass. So erhalten Sie sein Type-Objekt:

string className = "FooClass";
Type type = Type.GetType(className);
Nach dem Login kopieren

Um auf eine statische Methode innerhalb von FooClass zuzugreifen (z. B. MyMethod), verwenden Sie GetMethod():

MethodInfo method = type.GetMethod("MyMethod", BindingFlags.Static | BindingFlags.Public);
Nach dem Login kopieren

Zum Schluss rufen Sie die Methode mit Invoke():

auf
method.Invoke(null, null); // null for static methods, null for no parameters
Nach dem Login kopieren

Denken Sie daran, dass null als erstes Argument für statische Methoden verwendet wird (keine Instanz erforderlich) und das zweite Argument ein Array von Parametern ist (null, wenn die Methode keine Parameter akzeptiert).

Umgang mit externen Baugruppen:

Im obigen Beispiel wird davon ausgegangen, dass sich FooClass innerhalb derselben Assembly befindet. Für Typen, die sich in verschiedenen Assemblys befinden, müssen Sie den Namen der Assembly als Teil des vollständig qualifizierten Typnamens angeben. Das genaue Format hängt vom Standort der Baugruppe ab. Ausführliche Anleitungen zum Angeben von Assemblynamen innerhalb der Type.GetType()-Methode.

finden Sie in der MSDN-Dokumentation

Weitere Erkundung:

Weitere Informationen zur C#-Reflexion finden Sie in der offiziellen Microsoft-Dokumentation zu Type.GetType(), MethodInfo.GetMethod() und MethodInfo.Invoke(). Diese Ressourcen bieten umfassende Details und erweiterte Nutzungsszenarien.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Reflection eine Klassenreferenz aus einem String in C# abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage