J'entends régulièrement dire -- à tort -- que la sérialisation XML avec Silverlight 2 Beta 1 n'est pas possible, c'est pourquoi j'ai voulu faire ce petit article :)
Pour sérialiser vos objets en XML il suffit d'ajouter dans les références de votre projet l'assembly "System.Xml.Serialization":

Ensuite déclarez par exemple votre classe à serialiser de la manière suivante:

public class Test
{
    [XmlAttribute]
    public string Id { get; set; }
    public int Count { get; set; }
    public string Name { get; set; }
}

Seules contraintes: votre classe doit avoir au moins un constructeur par défaut (ou pas de constructeur du tout) et les propriétés à sérialiser doivent être accessibles en lecture/écriture (ces contraintes n'ont rien à voir avec Silverlight). Libre à vous d'utiliser tout l'armada de sérialisation XML classique (XmlAttribute, XmlIgnore, XmlRoot, etc.). Imaginons ensuite par exemple le code suivant:

public partial class Page : UserControl
{
    public Page()
    {
        InitializeComponent();

        var test = new Test { Id = "titi", Name = "toto", Count = 42 };
        string xml = Tools.XmlSerialize<Test>(test);
        Console.WriteLine(xml);
    }
}

Si on déclare la fameuse méthode de sérialisation de cette manière...

using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

namespace Alti
{
    public static class Tools
    {
        public static string XmlSerialize<T>(T obj)
        {
            var s = new XmlSerializer(typeof(T));
            var stream = new MemoryStream();
            s.Serialize(stream, obj);
            stream.Position = 0;

            var buffer = new byte[stream.Length];
            stream.Read(buffer, 0, (int)stream.Length);

            var utf8 = new UTF8Encoding();
            return utf8.GetString(buffer, 0, buffer.Length);
        }
    }
}

...et qu'on prend la peine de lancer l'application, la magie opère :

<?xml version="1.0" encoding="utf-8" ?> 
<Test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" Id="titi">
    <Count>42</Count> 
    <Name>toto</Name> 
</Test>

[EDIT] Si les namespaces vous irritent (comme moi), faites plutot:

var ns = new XmlSerializerNamespaces();
ns.Add(string.Empty, string.Empty);
s.Serialize(stream, obj, ns);

ce qui donne:

<?xml version="1.0" encoding="utf-8" ?> 
<Test Id="titi">
    <Count>42</Count> 
    <Name>toto</Name> 
</Test>

Hope this helps !

Aurélien