Reflection 이란?
런타임에 어셈블리, 모듈, 형식 및 해당 맴버들에 대한 정보를 검사하고 수정할 수 있는 기능
변수 형식을 가져오는 리플렉션 예제
int i = 42;
Type type = i.GetType();
Console.WriteLine(type); // System.Int32
주요 기능 및 사용 사례
- 형식 정보 검사 : 객체의 형식, 이름, 어셈블리 정보를 런타임에 확인
- 동적 객체 생성 : 런타임에 동적으로 객체를 생성
- 메서드 및 속성 호출 : 동적으로 메서드를 호출하거나 속성값을 읽고 씀
- 특성 검사 : Attribute를 런타임에 확인하여 메타데이터 접근 가능
- 인터페이스나 상속관계 검사 : 객체가 특정 인터페이스를 구현했는지, 기본클레스를 상속받았는지 여부를 런타임에 검사
단점
- 컴파일 시에 타입 안정성을 해침
- 전반적으로 느림 - 어셈블리에서 정의하는 메타데이터를 살필 때 항상 문자열 검색이 수행됨
- 리플렉션을 이용해 맴버를 호출하면 성능에 좋지 않은 영향을 미침.
'Language > C#' 카테고리의 다른 글
[C#] dotNet (2) | 2024.10.14 |
---|---|
[C#] BitOperation (1) | 2024.10.14 |
[C#] Enum (0) | 2024.10.14 |
[C#] Abstract Class (0) | 2024.10.14 |
[C#] Orderby (0) | 2024.10.14 |