반응형
Reflection을 사용하여 내부 클래스에 액세스하는 방법
어셈블리의 내부 클래스에 액세스하려면 어떻게해야합니까? System.ComponentModel.Design.DesignerHost에 액세스하고 싶습니다. 여기서 DesignerHost는 내부 및 봉인 된 클래스입니다.
어셈블리 및 형식을로드하는 코드를 어떻게 수행합니까?
으로 이렇게하면 일반적 안됩니다 . 유형이 내부로 내부로 어셈블리 외부에서 사용하지 않습니다. 이후 버전에서 제거, 변경 등을 할 수 있습니다.
그러나 반사 하지 테이크 오버로드를 단지 봐-공공없는 액세스 유형 및 회원들에게 허용 BindingFlags
인수를, 그리고 등 BindingFlags.NonPublic
이 통과하는 플래그에.
당신이있는 경우 정규화 (어셈블리 정보 포함) 유형의 이름을 한 후 바로 호출 작동합니다. 어셈블리를 미리 알고 있는 경우 어셈블리 내의 공용 형식을 알고 있는 어셈블리 참조를 가져 오는 데 사용 하는 것이 일반적으로 더 간단하며 .Type.GetType(string)
typeof(TheOtherType).Assembly
Assembly.GetType(string)
어셈블리를로드하고 예제에서 인용 한 유형을 입력 한 다음 :
Assembly design = Assembly.LoadFile(@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Design.dll");
Type designHost = design.GetType("System.ComponentModel.Design.DesignerHost");
참고 URL : https://stackoverflow.com/questions/1259222/how-to-access-internal-class-using-reflection
반응형
'ProgramingTip' 카테고리의 다른 글
C ++에서 환경 변수에 액세스 (0) | 2020.11.24 |
---|---|
WCFTestClient HTTP 요청이 클라이언트 인증 체계 '익명'으로 인증되지 않은 것입니다. (0) | 2020.11.24 |
WPF의 GroupBox는 하나의 요소 만 포함 할 수 있습니까? (0) | 2020.11.24 |
GCC에서 std = c99 플래그 설정 (0) | 2020.11.24 |
C ++ : 배열 용 생성자 이니셜 라이저 (0) | 2020.11.24 |