리플렉션 Reflection


실행 중(런 타임)에 클래스나 객체의 타입 정보를 조사하는 기능, 리플렉션을 사용하여 형식의 인스턴스를 동적으로 만들거나, 형식을 기존 개체에 바인딩하거나, 기존 개체에서 형식을 가져오고 해당 메서드와 속성을 액세스 할 수 있다.(형식 이름, 포로퍼티, 메소드, 필드, 이벤트 목록을 모두 볼수 있고, 해당 메소드를 호출하거나 필드, 프로퍼티에 접근하는 것도 가능하 다는 것임)

타입 정보는 보통 컴파일 중에만 사용되며 컴파일러에 의해 기계어로 바뀌고 나면 사라지는 것이 일반적이다 하지만 C#은 컴파일된 결과 코드 뿐만 아니라 타입에 대한 메타 데이터를 실행 파일에 같이 기록해 놓기 떄문에 실행중에도 정보를 조사할 수 있다.


접근방법

지정된 이름으로 접근

1) Type t = Type.GetType("Test");


클래스 타입으로 접근

2) Type t = tyoeof("Test");


객체로 접근

3) Type t = Test.GetType()


프로그램의 metadata에 접근할 수 있도록 해주는 이 클래스는 System.Refelection namespace에 정의 해 주어야한다.

해당 메서드와 멤버변수들을 불러 올수 있다.







학습 참고

1) http://www.csharpstudy.com/Practical/Prac-reflection.aspx

2) https://hsj0511.tistory.com/350

3) https://hongjinhyeon.tistory.com/86

+ Recent posts