La désérialisation XML ne fonctionne qu'avec l'espace de nommage dans xml

Le moyen le plus simple-je obtenir ServiceStack désérialisation xml pour travailler, c'est lorsque le fichier xml contient un espace de noms. Cependant, le xml je recevoir ne contiennent pas d'espaces de noms. Le plus simple exemple de travail:

[Serializable]
public class test
{

}

class Program
{
   static void Main(string[] args)
   {
       string xml="<test xmlns=\"http://schemas.datacontract.org/2004/07/\"></test>";
       var result = ServiceStack.Text.XmlSerializer.DeserializeFromString<test>(xml);
   }
}

Cependant, ce n'est pas ce que je veux. Je veux la suite de désérialiser, puisque c'est le xml-je obtenir à partir de plusieurs services:

string xml="<test></test>";

Mais qui me donne l'erreur suivante:

DeserializeDataContract: Error converting type: Error in line 1 position 7. 
Expecting element 'test' from namespace 
'http://schemas.datacontract.org/2004/07/'.. 
Encountered 'Element'  with name 'test', namespace ''.

J'ai essayé:

[Serializable]
[XmlRoot("test", Namespace = "")]
public class test

Je ne peux pas créer un nouveau Sérialiseur, parce que ServiceStack.Texte.XmlSerializer est statique. J'ai besoin de choisir pour Microsoft XmlSerializer OU ServiceStack (pas les deux). Sens: si je ne peux pas obtenir ce simple exemple pour travailler j'ai besoin de passer un ailleurs très utiles dans le cadre de la ServiceStack paquet. La dernière chose que je veux, c'est d'injecter une dose d'factice de l'espace de noms entrant dans le xml.

OriginalL'auteur user1154148 | 2012-03-13