2012-04-12 2 views
6

나는 Type.GetType()을 사용하여 인스턴스를 만듭니다.Type.GetType() 동적 문자열 반환 null

이 작동 :

var type = Type.GetType("Test.ClassServices.HowService, Test"); 

그러나,이 나던 일을. null :

var name = "How"; 
var type = Type.GetType("Test.ClassServices."+name+"Service, Test"); 
+2

GetType은 인스턴스를 만들지 않으며 지정된 형식을 나타내는 Type 개체를 반환합니다. null에 관해서는 어셈블리가 발견되어로드되었고 네임 스페이스가 맞습니까? – Lloyd

+4

.NET 4에서 이것을 시도했지만 아무런 문제가 없었습니다. 그래서 오타가 있는지 코드를 두 번 확인하십시오. – Jetti

+2

두 번째 경우에 오타가 없었습니까? 나는'name' 변수의 값을 계산한다고 가정합니다. 이것이 올바르게 수행되었다고 확신합니까? (BTW, 대소 문자 구분)? –

답변

5

No-repro를 반환합니다. MSDN에 Type.GetType()에서

var hardCodedWorking = Type.GetType("System.String"); 

var stringName = "String"; 
var concatenatedWorking = Type.GetType("System." + stringName); 

var badStringName = "string"; 
var concatenatedNull = Type.GetType("System." + badStringName); 

:이 샘플을 실행

는 대소 문자를 구분 검색을 수행, 지정된 이름의 Type을 가져옵니다.

위에 나와있는 예제를 바탕으로, name의 값이 클래스 이름과 완벽하게 일치하지 않을 가능성이 높습니다.