Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#의 리플렉션

<시간/>

리플렉션 개체는 런타임에 형식 정보를 얻는 데 사용됩니다. 실행 중인 프로그램의 메타데이터에 대한 액세스를 제공하는 클래스는 System.Reflection 네임스페이스에 있습니다.

다음은 Reflections −

의 응용 프로그램입니다.
  • 런타임에 속성 정보를 볼 수 있습니다.

  • 어셈블리의 다양한 유형을 검사하고 이러한 유형을 인스턴스화할 수 있습니다.

  • 메서드 및 속성에 대한 늦은 바인딩을 허용합니다.

  • 런타임에 새 유형을 생성한 다음 해당 유형을 사용하여 일부 작업을 수행할 수 있습니다.

예를 들어 보겠습니다 -

using System;

[AttributeUsage(AttributeTargets.All)]
public class HelpAttribute : System.Attribute {
   public readonly string Url;

   public string Topic // Topic is a named parameter {
      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();
      }
   }
}