A mon avis ton problème n'est pas de désérializer le contenu mais de le récupérer, un ToString() ne suffit pas, il te faut plutot quelque chose du genre :
byte[] buffer = new byte[256];
StringBuilder stb = new StringBuilder();
while(xtw.BaseStream.Read(buffer, 0, 256) != 0)
{
int i = 0;
while(i<buffer.Length && buffer[i] != 0)
{
stb.Append(buffer[i++]);
}
}
return stb.ToString();
ici, la variable xtw est un XmlTextWriter mais le principe reste le même...