为什么 xml 序列化会在元素中添加一个额外的空白字符?

Why xml serialization adds an extra whitespace character inside the element?

我正在尝试将一个对象序列化为 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();
    }
}

我该如何解决?

可能不是最有效的解决方案,但您可以在 Serialize<T>().

中返回序列化数据之前做一个简单的 String.Replace

正在替换

 return textWriter.ToString();

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