Heim > Backend-Entwicklung > C++ > Wie kann ich mithilfe von Reflection in C# auf private Methoden zugreifen?

Wie kann ich mithilfe von Reflection in C# auf private Methoden zugreifen?

DDD
Freigeben: 2025-01-25 05:17:09
Original
477 Leute haben es durchsucht

How Can I Access Private Methods Using Reflection in C#?

Reflection nutzen, um private C#-Methoden aufzurufen

Reflection in C# bietet die Möglichkeit, auf private Klassenmethoden zuzugreifen und diese aufzurufen – eine Funktionalität, die normalerweise auf externen Code beschränkt ist. Dies kann in Situationen von Vorteil sein, die dynamische Methodenaufrufe erfordern, abhängig von Laufzeitdaten.

Ihr Code-Snippet verwendet GetMethod(), um eine Methode anhand des Namens zu finden. Allerdings schließt GetMethod() standardmäßig private Mitglieder aus. Um private Methoden einzubeziehen, müssen Sie beim Aufruf von BindingFlags:GetMethod() ein bestimmtes

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

BindingFlags.NonPublic stellt sicher, dass nicht öffentliche (private) Methoden in die Suche einbezogen werden, während BindingFlags.Instance die Suche auf Instanzmethoden beschränkt. Diese Kombination garantiert, dass GetMethod() die gewünschte private Methode innerhalb der aktuellen Klasseninstanz korrekt identifiziert.

Ausführliche Informationen zum Anpassen Ihrer Methodensuche finden Sie in der C#-Dokumentation zur BindingFlags-Enumeration. Diese Dokumentation listet umfassend alle verfügbaren Flags zur Verfeinerung der Suche über Methoden, Felder und andere Klassenmitglieder hinweg auf.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Reflection in C# auf private Methoden zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage