[C#] 리플렉션

Flaming Bun·2025년 7월 14일

C#

목록 보기
29/35

참고 영상 : 리플렉션

🔥 리플렉션

런타임에 프로그램의 메타데이터를 조회하거나 조작하는 기능이다.

System.Object는 형식 정보를 반환하는 GetType() 메서드를 갖고있다. (즉, 모든 데이터가 해당 메서드를 갖는다.)

리플렉션을 사용하면 객체 생성도 가능하다. (플러그인을 만들 때 유리)

System.Type의 주요 메서드

메소드반환 형식설명
GetConstructors()ConstructorInfo[]해당 형식의 모든 생성자 목록을 반환한다.
GetEvents()EventInfo[]해당 형식의 이벤트 목록을 반환한다.
GetFields()FieldInfo[]해당 형식의 필드 목록을 반환한다.
GetGenericArguments()Type[]해당 형식의 형식 매개 변수 목록을 반환한다.
GetInterfaces()Type[]해당 형식이 상속하는 인터페이스 목록을 반환한다.
GetMembers()MemberInfo[]해당 형식의 멤버 목록을 반환한다.
GetMethods()MethodInfo[]해당 형식의 메소드 목록을 반환한다.
GetNestedTypes()Type[]해당 형식의 내장 형식 목록을 반환한다.
GetProperties()PropertyInfo[]해당 형식의 프로퍼티 목록을 반환한다.


애트리뷰트

애트리뷰트는 코드에 메타데이터를 추가하는 방법으로,

클래스, 속성과 같은 거의 모든 코드 요소에 적용할 수 있다.

코드에 붙인 특성은 리플렉션을 통해 런타임에 조회할 수 있다.

예시

[Serializable]
public class SampleClass { }

위 예시에서

[Serializable]이 애트리뷰트다.

0개의 댓글