Reflexion nutzen, um private Instanzmethoden in C#
aufzurufen dynamisch auf eine private Methode aus demselben Objekt aufrufen, muss GetMethod()
mit dem richtigen BindingFlags
verwendet werden. Das Standardverhalten von GetMethod()
gibt nur öffentliche Mitglieder zurück.
Um auf private Instanzmethoden zuzugreifen, ändern Sie Ihren Code wie folgt:
<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance); dynMethod.Invoke(this, new object[] { methodParams });</code>
Die BindingFlags
enum steuert die Methodensuche. BindingFlags.NonPublic
Enthält private Methoden und BindingFlags.Instance
stellt sicher, dass Sie eine Instanzmethode abzielen (keine statische).
Das obige ist der detaillierte Inhalt vonWie kann ich Reflection verwenden, um private Instanzmethoden in C# aufzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!