코드는이동적 대해서 typeof 내가 문제 정보 파일 설정에서 변수를 사용하는 것과 typeof 문을 쓰는 데
Type t = new typeof ("My.other.class" + configValue[0]);
configValue 내가 app.config 파일에서 얻을 동적 가치와 같다 .
오류가 발생하면 "형식 예상"입니다. 형식을 잘못 입력했다고해서 직접 입력하면 오류가 발생합니다. 이것을 어떻게 써야합니까?
코드는이동적 대해서 typeof 내가 문제 정보 파일 설정에서 변수를 사용하는 것과 typeof 문을 쓰는 데
Type t = new typeof ("My.other.class" + configValue[0]);
configValue 내가 app.config 파일에서 얻을 동적 가치와 같다 .
오류가 발생하면 "형식 예상"입니다. 형식을 잘못 입력했다고해서 직접 입력하면 오류가 발생합니다. 이것을 어떻게 써야합니까?
typeof
키워드는 컴파일 타임 용도로 사용됩니다. 대신 Type.GetType(string)
API를 사용하십시오.
네임 스페이스와 클래스 이름 (질문과 유사)을 사용하여이를 수행하려면 클래스가 포함 된 어셈블리도 알아야합니다.
현재 실행중인 어셈블리 (또는 mscorlib)에 Type이 들어 있으면 Type.GetType(string)을 사용하여 Type을 가져올 수 있습니다.
유형이 다른 어셈블리 (예 : 라이브러리)에 포함되어있는 경우 Assembly.GetType을 대신 사용해야합니다. 그러나 Assembly.Load를 통해 검색하거나 어셈블리 내에서 다른 유형을 사용하여 Assembly 인스턴스를 가져와야합니다.
여전히 Type.GetType을 사용할 수 있습니다. 어셈블리로 한정된 형식 이름 만 있으면됩니다. 내가 설명하기 위해 링크 된 API 문서. –
예 - 내 의견도 그걸 지정했습니다. 어셈블리를 사용하지 않고 질문의 구문 (네임 스페이스 + 유형)을 사용하여로드 할 수 없습니다. –
이게 당신이 찾고 있는게 있나요?
Type t = Type.GetType("spork");
object myspork = Activator.CreateInstance(t);
유형이 현재 어셈블리 또는 mscorlib에 없으면 작동하지 않습니다. 그렇지 않으면 네임 스페이스 + 유형뿐만 아니라 전체 어셈블리 규정 이름을 제공해야합니다. –