Почему сериализация xml добавляет дополнительный символ пробела внутри элемента? - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь сериализовать объект в XML, и проблема, которую я получаю, состоит в том, что объект сериализуется в

<something />  

вместо

<something/>

Я считаю, что оба имеют действительный синтаксис XML, но я должен получить <something/>

Вот мой код

public static string Serialize<T>(T ObjectToSerialize)
{
    XmlWriterSettings settings = new XmlWriterSettings()
    {
        OmitXmlDeclaration = true,
        Encoding = Encoding.UTF8,
    };

    XmlSerializer xmlSerializer = new XmlSerializer(ObjectToSerialize.GetType());

    using (StringWriter textWriter = new StringWriter())
    {
        using (var xw = XmlWriter.Create(textWriter, settings))
        {
            xmlSerializer.Serialize(xw, ObjectToSerialize);

        }

        return textWriter.ToString();
    }
}

Как я могу это исправить?

1 Ответ

0 голосов
/ 07 января 2020

Возможно, это не самое эффективное решение, но вы можете сделать простое String.Replace перед возвратом сериализованных данных в Serialize<T>().

Замена

 return textWriter.ToString();

на

 return textWriter.ToString().Replace(" />","/>"); 
...