2010-03-08 2 views
13

주어진 TKey 및 TValue 유형을 Dictionary<TKey,TValue> 유형으로 지정하려고합니다.사전에 주어진 TKey 및 TValue의 형식을 얻는 방법 <TKey,TValue> 유형

예 : 유형 Dictionary<Int32,String> 경우 나는 (INT32)를 는 keyType = 대해서 typeof를 얻을하는 방법을 알고 싶어 치형 = 대해서 typeof (문자열) 나는이 당신을 위해 무엇을 찾고있는 것 같아요

+0

이유를 설명해 주시겠습니까? –

+0

대부분의 * 유용한 * 경우에는 코드가 이미 유형을 알고 있습니다. (typeof (int)'/'typeof (string)'), 또는 generics를 통해 간접적으로 (typeof (TYourKeyType)/typeof (TYourValueType)과 같은) do-do 당신은'객체'를 가지고 있습니까? –

+0

사전을 직렬화 된 텍스트로 구성해야합니다. Dictionary는 직렬화 할 수 없기 때문에 사용자 정의 형식을 사용합니다. 그런 다음 재구성 할 때 키와 값의 유형이 필요합니다. – harsha

답변

31

:

Dictionary<int, string> dictionary = new Dictionary<int, string>(); 
Type[] arguments = dictionary.GetType().GetGenericArguments(); 
Type keyType = arguments[0]; 
Type valueType = arguments[1]; 

참조 : Type.GetGenericArguments

+0

http://msdn.microsoft.com/en-us/library/system.type.getgenericarguments.aspx –

+0

@Mitch : thanks; 나는 문서에 대한 링크를 게시하지 않았다는 것을 믿을 수 없다. –

+0

나는 귀하의 게시물에 링크를 추가하는 자유를했습니다. –

관련 문제