由于您使用的是字典,因此常规 XmlSerializer 将不起作用,您可以使用 DataContractSerializer 进行序列化。
这 2 个静态类将处理您在 silverlight(和任何 .NET)中对 xml 的字符串表示的所有序列化/反序列化需求
您将需要对 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);
}