반사

2012-07-30 4 views
20

를 사용하여 중첩 된 유형의 컨테이너 형태를 취득 내가 클래스 같은 말해봐 : 반사

public class Test { 
    public class InnerTest{} 
} 

지금 InnerTest에 대한 TypeInfo 개체가 있습니다. InnerTest에서 테스트 용 TypeInfo 개체를 어떻게 찾을 수 있습니까?

다른 방법은 간단합니다. GetNestedTypes()을 사용할 수는 있지만 중첩 된 클래스의 포함 클래스를 파악하는 데 메서드 또는 속성 (IsNestedType 제외)을 찾을 수 없습니다.

답변

28

"DeclaringType"속성을 검색하면이를 확인할 수 있습니다. MSDN을 인용

:

바깥 쪽 형식을 나타내는 Type 개체, 현재의 유형이 중첩 된 형태의 경우는 현재 유형이 제네릭 유형의 유형 매개 변수 인 경우 제네릭 유형 정의. 현재의 형태가 범용 메소드의 형태 파라미터의 경우는, 형태를 선언하는 형태. 그렇지 않으면 null입니다. 당신이 Type.DeclaringType 재산을 찾고있는 것처럼

http://msdn.microsoft.com/en-us/library/system.type.declaringtype.aspx

+0

이렇게 간단한 해결책입니다. 그리고 나 자신을 미친 찾고있다 :) – jessehouwing

4

는 소리.