C# Reflection 반사
1333 단어 reflection
1. 메타데이터 메타데이터(attributes 특성을 통해 표시됨)를 보고 표시 등에 사용
2. 유형의 발견(유형, 유형에 정의된 속성, 방법, 이벤트 등)
3. 귀속 대상을 미루고 동적 실례화 대상을 호출할 수 있습니다
4. 동적으로 새 유형 만들기
유형 검색 인스턴스:
//
Assembly a = Assembly.Load("Mscorlib.dll");
// ,
Type[] types = a.GetTypes();
//
Type theType = Type.GetType("System.Reflection.Assembly");
// , 、 、
MemberInfo[] mbrInfoArray = theType.GetMembers();
//
MemberInfo[] mbrInfoArray = theType.GetMethods();
// , Get
MemberInfo[] mbrInfoArray = theType.FindMembers(MemberTypes.Method, BindingFlags.Default, Type.FilterName, "Get*");
동적 읽기 클래스, 인스턴스 생성, 호출 방법의 예:
// / ,
Type theMathType = Type.GetType("CustomMath");
Object theObj = Activator.CreateInstance(theMathType);
//
Type[] paramTypes = new Type[1];
paramTypes[0]= Type.GetType("System.Double");
// , , ,
MethodInfo CosineInfo = theMathType.GetMethod("Cos", paramTypes);
//
Object[] parameters = new Object[1];
parameters[0] = 45;
//
Object returnVal = CosineInfo.Invoke(theObj, parameters);
동적 생성 새 유형 (reflection emit 반사 발신) 은 일반적으로 비교적 적게 사용됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin 반사iOS(iOS 이상)와 안드로이드 응용 프로그램의 엔지니어. 반년은 주로 안드로이드였다. 나는 Oisix에서 일한다. Java 등 언어별 반사 기능을 갖춘 Kotlin 버전입니다. 클래스 구조 (예: 속성) 를 읽거...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.