Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

จะตั้งค่าคุณสมบัติโดยการสะท้อนใน C # ได้อย่างไร?


ระบบ เนมสเปซการสะท้อนมีคลาสที่ให้คุณรับข้อมูลเกี่ยวกับแอปพลิเคชันและเพิ่มประเภท ค่า และอ็อบเจ็กต์ในแอปพลิเคชันแบบไดนามิก

ออบเจ็กต์การสะท้อนใช้สำหรับรับข้อมูลประเภทที่รันไทม์ คลาสที่ให้การเข้าถึงข้อมูลเมตาของโปรแกรมที่กำลังทำงานอยู่ในระบบ เนมสเปซสะท้อนแสง

การสะท้อนช่วยให้ดูข้อมูลแอตทริบิวต์ที่รันไทม์ได้

การสะท้อนช่วยให้ตรวจสอบประเภทต่างๆ ในชุดประกอบและยกตัวอย่างประเภทเหล่านี้ได้

การสะท้อนช่วยให้มีผลผูกพันกับวิธีการและคุณสมบัติล่าช้า

การสะท้อนช่วยให้สร้างประเภทใหม่ในขณะใช้งานจริง แล้วทำงานบางอย่างโดยใช้ประเภทเหล่านั้นได้

ตัวอย่าง

GetProperty(สตริง)

ค้นหาทรัพย์สินสาธารณะด้วยชื่อที่ระบุ

GetType(สตริง บูลีน)

รับอ็อบเจ็กต์ Type ที่มีชื่อที่ระบุในอินสแตนซ์แอสเซมบลี และอาจมีข้อยกเว้นหากไม่พบประเภทดังกล่าว

SetValue(Object, Object)

ตั้งค่าคุณสมบัติของวัตถุที่ระบุ

class Program{
   static void Main(string[] args){
      User user = new User();
      Type type = user.GetType();
      PropertyInfo prop = type.GetProperty("Name");
      prop.SetValue(user, "Bangalore", null);
      System.Console.WriteLine(user.Name);
      Console.ReadLine();
   }
}
class User{
   public int Id { get; set; }
   public string Name { get; set; }
}

ผลลัพธ์

Bangalore