2010-03-22 4 views
1

이 이상한 문제가 있습니다.XML 문자열에서 동적으로 읽는 데이터 유형 선언

<key><int>5</int></key><value><int>10</int> 

위의 XML은 Paul's Code를 사용하여 사전을 직렬화 후 얻을 수있다 - 나는 다음과 같은 XML 문자열을했습니다. 이제 xml을 사전으로 다시 변환하려고합니다.

xml에서 "int"형식을 가져 와서 다음과 같이 사전을 선언 할 수 있습니까?

Dictionary<int, int> 

실마리가 있습니까?

답변

1

이전 질문, 필자는 알고 있지만, 여기에 직렬화 된 SerializableDictionary (하나의 Paul이 지적한대로)와 함께 작동하는 일반적인 접근법이 있습니다. 여전히 관련이 있다면 시도해 볼 수 있습니까?

SerializableDictionary<int, int> stuffDict = ReadXML<int, int>(@"c:\test.xml"); 

private static SerializableDictionary<T, U> ReadXML<T, U>(string file) 
{ 
    SerializableDictionary<T, U> dict = new SerializableDictionary<T, U>(); 

    if (File.Exists(file)) 
    { 
     FileStream flStream = new FileStream(file, FileMode.Open, FileAccess.Read); 
     try 
     { 
      XmlSerializer xmlSerializer = new XmlSerializer(typeof(SerializableDictionary<T, U>)); 
      dict = xmlSerializer.Deserialize(flStream) as SerializableDictionary<T, U>; 
     } 
     finally 
     { 
      flStream.Close(); 
     } 
    } 
    return dict; 
}