J'ai posté il y a quelques temps un article sur la sérialisation XML où je donnais une astuce pour enlever les attributs xmlns:xsi et xmlns:xsd ajoutés automatiquement par le serializer. Le souci est que si la racine doit contenir un attribut de votre classe, vous êtes roulés, il va disparaître en même temps.
Heureusement il y a une autre méthode, qui est même la méthode officielle. Il suffit de créer une instance de la classe XmlSerializerNamespaces et de passer cette instance dans la fonction Serialize de XmlSerializer.
Démonstration:
XDocument xDoc = new XDocument();
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add( "", "" );
using (XmlWriter xmlWriter = xDoc.CreateWriter())
xmlSerializer_.Serialize(xmlWriter, objectToSerialize, namespaces);
Et voilà le travail :)
Have fun!