LinqToXsd Serialization дает дубликат (вложенный) корневой элемент

У меня есть несколько XSD, которые нужно использовать в качестве запросов для веб-сервисов. Когда я сериализую запрос к строке (или файлу), корневой элемент всегда повторяется как элемент xml. Почему это? Как я могу предотвратить это?

Я использую LinqToXsd (пакет nuget) V2.0.2. с VS2013.

XSD:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://blah.com" targetNamespace="http://blah.com">
<xsd:complexType name="SomeValues">
    <xsd:sequence>
        <xsd:element name="Value1" type="xsd:int" minOccurs="0"/>
        <xsd:element name="Value2" type="xsd:int" minOccurs="0"/>
    </xsd:sequence>
</xsd:complexType>

Результирующий XML (как вы можете видеть, корень SomeValues ​​повторяется):

<?xml version="1.0" encoding="utf-16"?>
<SomeValues>
  <SomeValues xmlns="http://blah.com">
    <Value1 xmlns="">1</Value1>
    <Value2 xmlns="">2</Value2>
  </SomeValues>
</SomeValues>

А вот фрагмент сериализации:

private static string SerializeTest()
{
    var content = new SomeValues
    {
        Value1 = 1,
        Value2 = 2
    };

    XmlSerializer serializer = new XmlSerializer(content.GetType());

    using (var stringWriter = new StringWriter())
    {
        serializer.Serialize(stringWriter, content);
        return stringWriter.ToString();
    }
}

0 ответов

Другие вопросы по тегам