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
Linda HamiltonOriginal
2025-01-25 05:21:09519Durchsuche

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:

<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance);
dynMethod.Invoke(this, new object[] { methodParams });</code>

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!

Stellungnahme:
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