Heim > Backend-Entwicklung > C++ > Wie kann ich private Methoden mit Reflexion in C#aufrufen?

Wie kann ich private Methoden mit Reflexion in C#aufrufen?

Linda Hamilton
Freigeben: 2025-01-25 05:21:09
Original
552 Leute haben es durchsucht

How Can I Invoke Private Methods Using Reflection in C#?

Verwenden Sie Reflection, um private C#-Methoden aufzurufen

Das dynamische Aufrufen privater Methoden, insbesondere wenn sich der Methodenname basierend auf dem Eingabewert ändert, erfordert den Einsatz der Reflexionstechnologie. GetMethod() Standardmäßig ruft die Methode nur öffentliche Methoden ab und ignoriert private Methoden. Um auf private Methoden zuzugreifen, fügen Sie GetMethod() zur Funktion BindingFlags hinzu.

erfordert die Kombination der Flags BindingFlags.NonPublic und BindingFlags.Instance. Dies enthält nicht öffentliche (private) Methoden im Rahmen der aktuellen Instanz.

Der geänderte Code lautet wie folgt:

MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance);
dynMethod.Invoke(this, new object[] { methodParams });
Nach dem Login kopieren

Dieser Code ruft erfolgreich die private Methode „Draw_“ ab und ruft sie mit den bereitgestellten Parametern auf.

Weitere Informationen zum Thema Reflexion und BindingFlags finden Sie in der folgenden Dokumentation:

Das obige ist der detaillierte Inhalt vonWie kann ich private Methoden mit Reflexion in C#aufrufen?. 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