c# - मैं xmlserializer को केवल सादे xml कैसे बना सकता हूं?




.net xml-serialization (2)

आप XmlWriterSettings का उपयोग कर सकते हैं और msdn में बताए अनुसार संपत्ति OmitXmlDeclaration को सही पर सेट कर सकते हैं। फिर यहाँ वर्णित के रूप में XmlSerializer.Serialize (xmlWriter, objectToSerialize) का उपयोग करें

मुझे शुरुआत और xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" में <?xml version="1.0" encoding="utf-16"?> बिना, सादे xml प्राप्त करने की आवश्यकता है xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" XmlSerializer से पहले तत्व में। मैं यह कैसे कर सकता हूं?


यह सब एक साथ रखने के लिए - यह पूरी तरह से मेरे लिए काम करता है:

    // To Clean XML
    public string SerializeToString<T>(T value)
    {
        var emptyNamespaces = 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 StringWriter())
        using (var writer = XmlWriter.Create(stream, settings))
        {
            serializer.Serialize(writer, value, emptyNamespaces);
            return stream.ToString();
        }
    }