c# reflection 예제


다음은 Object base 클래스의 모든 형식에서 상속된 정적 메서드 GetType을 사용하여 변수 의 형식을 가져오는 간단한 리플렉션 예제입니다. 앞에서 만든 Customer 클래스를 다시 방문하여 기본 생성자와 매개 변수로 전달된 고객 개체의 유효성을 검사하는 데 사용되는 유효성 검사라는 메서드라는 두 가지 메서드를 통합해 보겠습니다. 이는 고객 클래스의 수정된 버전의 모습입니다. 이전 장에서는 리플렉션을 사용하여 특성 정보를 볼 수 있다고 언급했습니다. 다음의 모든 예제는 Test.dll 어셈블리에서 샘플 클래스 계산기에 액세스하려고 합니다. 계산기 클래스는 다음과 같이 정의 할 수 있습니다. 이 예제에서는 이전 장에서 만든 DeBugInfo 특성을 사용하고 리플렉션을 사용하여 사각형 클래스의 메타데이터를 읽습니다. C#의 리플렉션은 런타임에 형식에 대한 메타데이터를 검색하는 데 사용됩니다. 즉, 리플렉션을 사용하여 프로그램의 형식 메타데이터를 동적으로 검사할 수 있으며 로드된 어셈블리와 해당 어셈블리에 정의된 형식에 대한 정보를 검색할 수 있습니다. C#의 반사는 C++의 RTTI(런타임 유형 정보)와 유사합니다. 따라서 응용 프로그램의 특성을 사용하여 비즈니스 개체를 장식하는 경우 리플렉션을 활용하여 형식을 반영하고 형식 메서드의 특성을 검색한 다음 그에 따라 몇 가지 작업을 수행할 수 있습니다. 다음 예제는 시스템 어셈블리에서 DateTime 클래스의 인스턴스를 만듭니다.

C#에서 리플렉션은 런타임시 형식의 메타데이터를 가져오는 프로세스입니다. System.Reflection 네임스페이스에는 .Net에서 리플렉션을 작업하려면 프로그램에 System.Reflection 네임스페이스를 포함해야 합니다. 리플렉션을 사용하면 어셈블리, 형식 또는 모듈을 나타내는 데 사용할 수 있는 “Type” 형식의 개체를 가져옵니다. 리플렉션을 사용하여 형식의 인스턴스를 동적으로 만들고 형식의 메서드를 호출할 수도 있습니다. 다음 예제에서는 리플렉션을 사용하여 로드된 어셈블리의 전체 이름을 가져옵니다. 리플렉션은 어셈블리, 모듈 및 형식을 설명하는 개체(형식 형식)를 제공합니다. 리플렉션을 사용하여 형식의 인스턴스를 동적으로 만들고, 기존 개체에 형식을 바인딩하거나, 기존 개체에서 형식을 가져오고, 해당 메서드를 호출하거나 해당 필드 및 속성에 액세스할 수 있습니다. 코드에서 특성을 사용하는 경우 리플렉션을 사용하여 해당 특성에 액세스할 수 있습니다. 자세한 내용은 특성을 참조하십시오.