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

C#에서 리플렉션으로 속성 값을 설정하는 방법은 무엇입니까?


시스템. 리플렉션 네임스페이스에는 애플리케이션에 대한 정보를 얻고 애플리케이션에 유형, 값 및 개체를 동적으로 추가할 수 있는 클래스가 포함되어 있습니다.

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

리플렉션을 사용하면 런타임에 속성 정보를 볼 수 있습니다.

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

리플렉션을 사용하면 메서드 및 속성에 늦게 바인딩할 수 있습니다.

리플렉션을 사용하면 런타임에 새 유형을 만든 다음 해당 유형을 사용하여 일부 작업을 수행할 수 있습니다.

예시

GetProperty(문자열)

지정된 이름으로 공용 속성을 검색합니다.

GetType(문자열, 부울)

어셈블리 인스턴스에서 지정된 이름을 가진 Type 개체를 가져오고 유형을 찾을 수 없는 경우 선택적으로 예외를 throw합니다.

SetValue(객체, 객체)

지정된 개체의 속성 값을 설정합니다.

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