由于您使用的是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);
}