序列化为XML片段 - 而不是XML文档

Emm*_*uel 11 .net xml xml-serialization

如何将XML可序列化对象序列化为XML片段(根元素中没有XML声明或命名空间引用)?

And*_*are 19

这是一种hack-ish方法,无需将整个输出字符串加载到XmlDocument中:

using System;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

public class Example
{
    public String Name { get; set; }

    static void Main()
    {
        Example example = new Example { Name = "Foo" };

        XmlSerializer serializer = new XmlSerializer(typeof(Example));

        XmlSerializerNamespaces emptyNamespace = new XmlSerializerNamespaces();
        emptyNamespace.Add(String.Empty, String.Empty);

        StringBuilder output = new StringBuilder();

        XmlWriter writer = XmlWriter.Create(output,
            new XmlWriterSettings { OmitXmlDeclaration = true });
        serializer.Serialize(writer, example, emptyNamespace);

        Console.WriteLine(output.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)