Mit Reflection auf Mitglieder privater Kurse zugreifen
Problem:
Ist es möglich, mit Reflection auf die privaten Felder einer Klasse zuzugreifen, beispielsweise auf das Feld _bar
im folgenden Code?
<code class="language-csharp">class Foo { [SomeAttribute] private string _bar; public string BigBar { get { return this._bar; } } }</code>
Lösung:
Ja, Reflection ermöglicht den Zugriff auf private Felder. So rufen Sie private Felder mit BindingFlags
ab:
<code class="language-csharp">FieldInfo[] fields = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);</code>
BindingFlags.NonPublic
schließt nicht öffentliche Mitglieder (wie private Felder) ein und BindingFlags.Instance
stellt sicher, dass nur Instanzfelder zurückgegeben werden. Das fields
-Array enthält dann das private _bar
-Feld.
Das obige ist der detaillierte Inhalt vonKann Reflection auf private Klassenfelder zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!