C#에서 유형 이름을 포함하는 문자열은 해당 유형 객체로 변환 될 수 있습니다. 그러나이 변환에 사용 된 방법은 유형이 호출 코드와 동일한 어셈블리 또는 다른 어셈블리에 정의되어 있는지 여부에 따라 다릅니다.
type.getType (String)
유형이 동일한 어셈블리에 정의되면 type.getType (String)
메소드를 사용하고 정규화 된 유형 이름을 문자열로 제공 할 수 있습니다. 예를 들어, 유형
int 데이터 유형의
유형을 얻으려면
Type.GetType("System.Int32");
]
assembly.getType (String)
유형이 다른 어셈블리에 정의되면 어셈블리 이름도 제공해야합니다. 어셈블리 (string)
메소드를 사용하여 구현할 수 있습니다. 먼저, 어셈블리에 대한 참조를 얻은 다음 해당 참조를 사용하여 type
:
Assembly asm = typeof(SomeKnownType).Assembly;
Type type = asm.GetType("Namespace.MyClass");
유형의 네임 스페이스가 type.getType ()
또는 assembly.getType ()
에 제공된 문자열에 포함되어 있는지 확인하십시오. 또한, 강력하게 명명 된 어셈블리의 경우 버전, 문화 및 공개 키 태그를 포함한 전체 어셈블리 ID를 포함해야 할 수도 있습니다.
문자열에 유형의 자격있는 이름이 포함 된 다음 시나리오를 고려하십시오.
string typeName = "Namespace.MyClass, MyAssembly";
]
myAsSembly
가 호출 된 어셈블리에서 참조되는지 여부에 따라 type.getType ()
또는 assembly.getType ()
:
// 如果 MyAssembly 被引用
Type type1 = Type.GetType(typeName);
// 如果 MyAssembly 未被引用
Assembly asm = typeof(SomeKnownType).Assembly;
Type type2 = asm.GetType(typeName);
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3