Bolehkah Refleksi Mengubah Nilai Harta daripada Input Rentetan?
Menggunakan refleksi dalam C#, anda boleh mengakses ahli peribadi kelas, termasuk sifatnya . Ini membolehkan anda memanipulasi nilai asas sifat ini, walaupun terdapat sekatan aksesnya.
Contoh: Menetapkan Nilai Harta Secara Reflektif
Pertimbangkan kod berikut:
string propertyName = "first_name"; // Assume there's a property named first_name in the class
Untuk menetapkan nilai sifat ini menggunakan pantulan, ikut ini langkah:
Dapatkan maklumat hartanah menggunakan Reflection:
Type propertyType = typeof(TargetClass); PropertyInfo propertyInfo = propertyType.GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance);
Gunakan kaedah SetValue untuk mengubah nilai hartanah:
object targetObject = new TargetClass(); propertyInfo.SetValue(targetObject, "New Value", null);
Nota: Dalam contoh di atas, TargetClass mewakili kelas yang mengandungi sifat first_name. Untuk mengakses harta peribadi atau dilindungi, laraskan BindingFlags dalam GetProperty() dengan sewajarnya.
Atas ialah kandungan terperinci Bolehkah C# Reflection Mengubah Nilai Harta Persendirian daripada String?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!