Comment puis-je faire en sorte que le xmlserializer ne sérialise que XML?

Je dois obtenir du XML simple, sans la Au début et xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" dans le premier élément de XmlSerializer . Comment puis-je le faire?

Pour mettre tout cela ensemble – cela fonctionne parfaitement pour moi:

  // To Clean XML public ssortingng SerializeToSsortingng(T value) { var emptyNamepsaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }); var serializer = new XmlSerializer(value.GetType()); var settings = new XmlWriterSettings(); settings.Indent = true; settings.OmitXmlDeclaration = true; using (var stream = new SsortingngWriter()) using (var writer = XmlWriter.Create(stream, settings)) { serializer.Serialize(writer, value, emptyNamepsaces); return stream.ToSsortingng(); } } 

Utilisez la surcharge de méthode XmlSerializer.Serialize où vous pouvez spécifier des espaces de noms personnalisés et y transmettre ceci.

 var emptyNs = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }); serializer.Serialize(xmlWriter, objectToSerialze, emptyNs); 

passer un tableau vide ou vide ne fera pas l’affaire

Vous pouvez utiliser XmlWriterSettings et définir la propriété OmitXmlDeclaration sur true, comme décrit dans le msdn . Puis utilisez le XmlSerializer.Serialize (xmlWriter, objectToSerialize) comme décrit ici .