[C#] 리플렉션 (Reflection)PROGRAMMING/03. C#2024. 4. 26. 11:54
Table of Contents
반응형
리플렉션 (Reflection)
➡️ 어떤 Type에 대한 정보를 가져오거나 접근하는 등의 작업을 런타임에 동적으로 수행할 수 있도록 해주는 기능이다.
리플렉션을 사용하면 런타임에서 메서드를 호출하거나 필드의 값을 바꾸는 등의 작업을 할 수 있다.
다음은 리플렉션을 이용해서 할 수 있는 것들이다.
- 어셈블리 내의 형식에 대한 메타데이터에 접근할 수 있으며, 여기는 전체 형식 이름, 멤버 이름, 특성 등이 포함된다.
- 컴파일 타임에 정의되는 바인딩 대신 메타데이터를 사용해서 런타임에 동적으로 형식의 멤버를 호출할 수 있다.
리플렉션은 어셈블리에 포함된 메타데이터를 검사하는 프로세스다.
리플렉션을 통해 어셈블리 내의 모든 형식을 열거하고 특정 조건에 부합하는 정보를 찾는 것이 가능하다.
형식에 접근할 때는 System.Type의 인스턴스를 이용하며, 이 객체를 해당 형식 인스턴스의 멤버를 열거하는 메서드를 포함하고 있다. 추가로 이렇게 검사한 형식의 특정 객체에 대해 멤버를 호출하는 것도 가능하다.
GetType()
- object의 멤버이므로 모든 형식은 이 함수를 제공한다.
- 호출하면 원본 객체에 해당되는 System.type 형식의 인스턴스를 추출할 수 있다.
객체의 데이터 타입을 반환하는 기능을 수행한다.
GetType() 메서드를 사용하여 해당 객체 또는 변수에 대해 데이터 타입을 확인할 수 있다.
GetType() 메서드는 Type이라는 데이터 타입의 객체를 반환한다. Type은 데이터 타입의 모든 정보를 담고 있는 클래스이다.
필요 네임스페이스
1
2
|
using System;
using System.Reflection;
|
cs |
typeof()
- Type객체를 얻을 수 있다.
- 컴파일 시점에 특정 Type 인스턴스에 바인딩되며, 형식을 직접 매개변수로 사용한다.
typeof 연산자는 데이터 타입을 매개변수로 전달하면 되고 Type 클래스의 GetType() 메서드에는 네임스페이스를 포함한 데이터 타입을 문자열로 전달한다.
출처 및 참고 : Essential C# 6
반응형
@HYUNJZZANG :: HyunZzang
HyunZzang의 프로그래밍 공간 / 함께 공부해요!!
도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 부탁드립니다 :)