Heim > Backend-Entwicklung > C++ > Wie rufe ich statische Methoden mithilfe von Reflection in C# auf?

Wie rufe ich statische Methoden mithilfe von Reflection in C# auf?

Mary-Kate Olsen
Freigeben: 2024-12-28 18:45:13
Original
892 Leute haben es durchsucht

How to Invoke Static Methods Using Reflection in C#?

Aufrufen statischer Methoden mit Reflexion

Problem:

Sie besitzen mehrere statische Klassen innerhalb der Namespace mySolution.Macros, die jeweils statische Methoden enthalten wie:

public static class Indent
{
    public static void Run()
    {
        // implementation
    }
}
Nach dem Login kopieren

Ihr Ziel besteht darin, diese Methoden mithilfe von Reflektion aufzurufen, auch wenn sie statisch sind.

Lösung:

Um statische Methoden mit Reflektion aufzurufen und gleichzeitig ihre statische Natur beizubehalten, verwenden Sie den folgenden Ansatz :

foreach (var tempClass in macroClasses)
{
    // Note that the first argument is ignored for static methods
    tempClass.GetMethod("Run").Invoke(null, null);
}
Nach dem Login kopieren

Wie in der Dokumentation zu MethodInfo.Invoke erwähnt, ist das erste Argument für statische Methoden redundant, sodass Sie sicher übergeben können null.

Bindungsflags:

Es ist wichtig zu beachten, dass Sie möglicherweise Bindungsflags angeben müssen, wenn Sie die Methode aufrufen, wie im Kommentar vorgeschlagen:

tempClass.GetMethod("Run", BindingFlags.Public | BindingFlags.Static).Invoke(null, null);
Nach dem Login kopieren

Dadurch wird sichergestellt, dass die Methode öffentlich und statisch ist, was für einen ordnungsgemäßen Aufruf erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie rufe ich statische Methoden mithilfe von Reflection in C# auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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