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

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

Barbara Streisand
Barbara StreisandOriginal
2025-01-25 05:26:13416Durchsuche

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

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()

rufen Sie anschließend die private Methode mit der

-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!

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