由於您使用的是Dictionary,常規的XmlSerializer將無法正常工作,您可以使用DataContractSerializer進行序列化。
這2種靜態類將處理所有的序列化/反序列化需求在Silverlight中的XML字符串表示(以及任何.NET)
您將需要DataContractSerializer的
到System.Runtime.Serialization參考
public static void SerializeXml<T>(T obj, Stream strm)
{
DataContractSerializer ser = new DataContractSerializer(typeof(T));
ser.WriteObject(strm, obj);
}
public static T DeserializeXml<T>(Stream xml)
{
DataContractSerializer ser = new DataContractSerializer(typeof(T));
return (T)ser.ReadObject(xml);
}
如果您更願意使用JSON,則可以添加對System.ServiceModel.Web程序集的引用並改爲使用此版本。
public static void SerializeJson<T>(T obj, Stream strm)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
ser.WriteObject(strm, obj);
}
public static T DeserializeJson<T>(Stream json)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
return (T)ser.ReadObject(json);
}