Heim >Backend-Entwicklung >C++ >Wie kann ich private Methoden mit Reflexion in C#aufrufen?
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!