Zugriff auf private Member über Reflection in C#
Diese Anleitung zeigt, wie Sie mithilfe von Reflektion auf ein privates Feld innerhalb einer C#-Klasse zugreifen, selbst wenn das Feld mit einem benutzerdefinierten Attribut versehen ist. Wir umgehen die Notwendigkeit öffentlicher Eigenschaften, indem wir spezifische Bindungsflags verwenden.
Lösung:
Um das private Feld „_bar“ zu finden (vorausgesetzt, es existiert in Ihrer Klasse), verwenden Sie die Flags BindingFlags.NonPublic
und BindingFlags.Instance
innerhalb der GetFields
-Methode:
<code class="language-csharp">FieldInfo[] fields = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);</code>
Dieses Code-Snippet gibt ein Array von FieldInfo
-Objekten zurück, die alle nicht öffentlichen Instanzfelder der Klasse darstellen. Anschließend wäre eine weitere Verarbeitung erforderlich, um das spezifische „_bar“-Feld anhand seines Namens oder Attributs zu identifizieren.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Reflection in C# auf private Felder zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!