Menggunakan Refleksi untuk Mengakses Ahli Kelas Persendirian
Masalah:
Adakah mungkin untuk menggunakan Reflection untuk mengakses medan peribadi kelas, contohnya, medan _bar
dalam kod di bawah?
<code class="language-csharp">class Foo { [SomeAttribute] private string _bar; public string BigBar { get { return this._bar; } } }</code>
Penyelesaian:
Ya, Reflection membenarkan akses kepada medan peribadi. Begini cara untuk mendapatkan semula medan peribadi menggunakan BindingFlags
:
<code class="language-csharp">FieldInfo[] fields = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);</code>
BindingFlags.NonPublic
termasuk ahli bukan awam (seperti medan peribadi) dan BindingFlags.Instance
memastikan hanya medan contoh dikembalikan. Tatasusunan fields
kemudiannya akan mengandungi medan _bar
peribadi.
Atas ialah kandungan terperinci Bolehkah Reflection Mengakses Medan Kelas Persendirian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!