Сериализируйте во фрагмент XML - не XML-документ

Как я сериализирую XML-сериализуемый объект к фрагменту XML (никакое определение XML, ни ссылки пространства имен в корневом элементе)?

11
задан Emmanuel 4 May 2010 в 19:36
поделиться

2 ответа

Вот хакерский способ сделать это без необходимости загружать всю строку вывода в 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());
    }
}
19
ответ дан 3 December 2019 в 05:57
поделиться

Вы должны иметь возможность просто сериализовать, как обычно, а затем использовать свойство Root из полученного документа.

Вам может потребоваться сначала очистить атрибуты элемента.

1
ответ дан 3 December 2019 в 05:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: