2010-07-20 1 views
6

가능한 중복 :
How can I get generic Type from a string representation?C#에서 목록 <String>을 가져 오는 방법은 무엇입니까?

가 어떻게 Type.GetType()를 사용하여 C#에서 "List<String>"의 유형을받을 수 있나요?

은 내가 이미 시도 : 난의 종류를 얻고 값 때문에 typeof을 사용할 수 없습니다

Type.GetType("List<String>"); 
Type.GetType("System.Collections.Generic.List.String"); // Or [String] 

참고 문자열입니다.

+0

꺾쇠 괄호를 텍스트 단락에 표시하려면 역청사를 사용하여 코드로 서식을 지정해야합니다 (방금 편집 한대로). – AakashM

+0

다음 질문을 확인하십시오. http://stackoverflow.com/questions/557340/c-generic-list-t-how-to-get-the-type-of-t – Peanut

답변

18

당신은 "List<String>"에서 얻을 수 없습니다,하지만 당신은 Type.GetType에서 그것을 얻을 수 있습니다

Type type = Type.GetType("System.Collections.Generic.List`1[System.String]"); 

이 경우 운이 좋다 - 모두 List<T>string이 mscorlib에 있으므로 어셈블리를 지정할 필요가 없습니다.

`1 부분은 아티을 지정합니다. 즉 하나의 유형 매개 변수를 갖습니다. 대괄호 안에있는 비트는 형식 인수를 지정합니다.

여기서 List<String>의 주소는 어디입니까? 요구 사항을 변경할 수 있습니까? 그것은 문자열을 파싱하는 것보다 쉬울 것입니다. 타입 매개 변수가있는 곳에서 작업하고, 다른 네임 스페이스와 어셈블리에서 타입을 찾는 것 등입니다. 제한된 상황에서 작업하는 경우 (예 : 알려진 유형 세트 만 지원하면됩니다) 일부 세부 사항을 하드 코딩하는 것이 가장 쉽습니다.

+0

@Downvoter : 마음에 들지 않는 것을 설명하는주의? –

+0

조오기가 4 분 전에 같은 대답을했습니다. – onof

+0

@onof : 아니, 그는하지 않았다. 그는 단지 'typeof'를 보여주는 해답을주었습니다. OPof가 문자열에서 형식을 가져와야한다고 설명했을 때 편집했습니다. 나는 조오지가 그의 것을 편집하는 동안 내 대답을 쓰고 있었다. 처음 5 분이 지났기 때문에 편집 내용을 볼 수 없지만 분명히 거기에 있었거나 OP의 설명이 맞지 않습니다. –

1
System.Type type = typeof(List<String>); 
+0

을 가지고 있습니다. System.Web.UI.MobileControls.List의 유형을 가져 오지 않으면이 기능이 작동하지 않습니다. typeof (List <>)를 의미 했습니까? – Giorgi

0
typeof(List<string>) 
관련 문제