다음을 통해 공유


리플렉션

업데이트: 2007년 11월

System.Reflection 네임스페이스의 클래스와 System.Type을 사용하면 로드된 어셈블리와 이 어셈블리에 정의된 클래스, 인터페이스, 값 형식 등의 형식에 대한 정보를 얻을 수 있습니다. 리플렉션을 사용하여 런타임에 형식 인스턴스를 만든 다음, 이 형식 인스턴스를 호출하고 액세스할 수도 있습니다.

단원 내용

  • 리플렉션 개요
    리플렉션과 리플렉션의 주요 용도에 대해 설명합니다.

  • 방법: 리플렉션 전용 컨텍스트에 어셈블리 로드
    리플렉션 전용 로드 컨텍스트에 대해 설명합니다. 어셈블리를 로드하는 방법, 컨텍스트를 테스트하는 방법 및 리플렉션 전용 컨텍스트의 어셈블리에 적용된 특성을 검사하는 방법을 보여 줍니다.

  • 리플렉션의 런타임 형식
    RuntimeType과 같이 System.Reflection 네임스페이스의 추상 클래스를 상속하고 해당 구현을 많이 제공하는 내부 형식에 대해 설명합니다.

  • 형식 정보 보기
    System.Type 클래스에 대해 설명하고, System.Type과 몇 개의 reflection 클래스를 사용하여 생성자, 메서드, 필드, 속성 및 이벤트에 대한 정보를 얻는 방법을 보여 주는 코드 예제를 제공합니다.

  • 리플렉션 및 제네릭 형식
    리플렉션이 형식 매개 변수와 제네릭 형식 및 제네릭 메서드의 형식 인수를 처리하는 방법에 대해 설명합니다.

  • Reflection 클래스에서 사용되는 디자인 패턴
    메서드 명명 패턴을 비롯하여 Module, Type, MemberInfo 클래스 같이 가장 자주 사용되는 reflection 클래스의 용도를 표 형식으로 보여 줍니다.

  • 리플렉션의 보안 고려 사항
    형식 정보와 액세스 형식을 검색하는 데 사용될 수 있는 리플렉션 정도를 결정하는 규칙에 대해 설명합니다.

  • 동적으로 형식 로드 및 사용
    런타임에 바인딩을 지원하는 리플렉션 사용자 지정 바인딩 인터페이스에 대해 설명합니다.

  • 기본 멤버 액세스
    리플렉션을 사용하여 클래스가 가질 수 있는 기본 멤버에 액세스하는 방법에 대해 설명합니다.

  • 기본 인수 값 액세스
    리플렉션을 사용하여 기본값이 있는 인수에 액세스하는 방법과 이 인수를 사용하는 메서드를 호출하는 방법에 대해 설명합니다.

  • 사용자 지정 특성 액세스
    리플렉션을 사용하여 특성 유무와 값을 쿼리하는 방법에 대해 설명합니다.

  • 정규화된 형식 이름 지정
    BNF(Backus-Naur Form)를 기초로 하는 정규화된 형식 이름의 형식과 특수 문자, 어셈블리 이름, 포인터, 참조 및 배열을 지정하는 데 필요한 구문에 대해 설명합니다.

  • 관리되지 않는 리플렉션 API
    메타데이터 검사를 위한 관리되지 않는 리플렉션 사용에 대한 정보를 찾을 수 있는 곳에 대해 설명합니다.

  • 방법: 리플렉션을 사용하여 대리자 후크
    메서드의 대리자를 만들고 이벤트에 후크하는 방법에 대해 설명합니다. 런타임에 DynamicMethod를 사용하여 이벤트 처리 메서드를 만드는 방법에 대해 설명합니다.

참조

  • Type
    런타임 형식 시스템의 형식을 나타내고 리플렉션에 핵심 기능을 제공하는 클래스입니다.

  • System.Reflection
    메서드를 나타내는 MethodInfo 클래스와 같은 코드 엔터티의 다른 추상화가 포함된 네임스페이스입니다.

  • System.Reflection.Emit
    동적 어셈블리와 동적 메서드를 생성하기 위한 클래스가 포함된 네임스페이스입니다.

관련 단원