Heim >Backend-Entwicklung >C++ >Wie kann ich dynamisch private Methoden mit Reflexion in C#aufrufen?
Zugriff auf private Methoden mit C# Reflection
Reflection bietet eine leistungsstarke Möglichkeit, dynamisch mit privaten Methoden zu interagieren. Die Standardfunktion allein greifen jedoch nicht auf private Mitglieder zu. Diese Einschränkung wird durch die Verwendung der GetMethod()
Aufzählung überwunden. BindingFlags
Die Lösung:
Um private Methoden abzurufen, ändern Sie Ihren -Anruf, um die erforderliche GetMethod()
zu berücksichtigen. Dieses Beispiel zeigt, wie: BindingFlags
<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance);</code>Hier stellt
sicher, dass private Methoden in der Suche enthalten sind, und BindingFlags.NonPublic
Gibt an, dass wir nach Instanzmethoden suchen (im Gegensatz zu statischen Methoden). Mit diesen Flags findet BindingFlags.Instance
die private Methode erfolgreich. GetMethod()
-Methode auf dem zurückgegebenen Invoke()
-Objekt an und liefert die erforderlichen Parameter. MethodInfo
.
Das obige ist der detaillierte Inhalt vonWie kann ich dynamisch private Methoden mit Reflexion in C#aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!