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

การประยุกต์ใช้การสะท้อนใน C # คืออะไร?


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

ต่อไปนี้คือการประยุกต์ใช้การสะท้อน -

  • อนุญาตให้ดูข้อมูลแอตทริบิวต์ที่รันไทม์
  • ช่วยให้ตรวจสอบประเภทต่างๆ ในชุดประกอบและยกตัวอย่างประเภทเหล่านี้ได้
  • อนุญาตให้ผูกกับเมธอดและคุณสมบัติล่าช้า
  • อนุญาตให้สร้างประเภทใหม่ในขณะรันไทม์ แล้วทำงานบางอย่างโดยใช้ประเภทเหล่านั้น

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

เรามาดูตัวอย่างกันด้วยนะครับ

ด้านล่างเราได้ตั้งค่าวัตถุของคลาสเป้าหมาย -

System.Reflection.MemberInfo info = typeof(MyClass);

นี่คือตัวอย่างที่สมบูรณ์ −

ตัวอย่าง

using System;
using System.Reflection;

[AttributeUsage(AttributeTargets.All)]
public class HelpAttribute : System.Attribute {
   public readonly string Url;
   public string Topic {
      get {
         return topic;
      }

      set {
         topic = value;
      }
   }

   public HelpAttribute(string url) { // url is a positional parameter
      this.Url = url;
   }

private string topic;
}

[HelpAttribute("Information on the class MyClass")]
   class MyClass {
   }

namespace AttributeAppl {
   class Program {
      static void Main(string[] args) {
         System.Reflection.MemberInfo info = typeof(MyClass);
         object[] attributes = info.GetCustomAttributes(true);
         for (int i = 0; i < attributes.Length; i++) {
            System.Console.WriteLine(attributes[i]);
         }
         Console.ReadKey();
      }
   }
}

ผลลัพธ์

HelpAttribute