Поскольку вы используете словарь, обычный XmlSerializer не будет работать, вы можете сериализовать с помощью DataContractSerializer.
Эти 2 статических класса будут обрабатывать все ваши потребности в сериализации / десериализации для строкового представления xml в silverlight (и любом .NET)
Вам понадобится ссылка на System.Runtime.Serialization для DataContractSerializer
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);
}