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

C# 为什么xml序列化会在元素中添加额外的空白字符?,c#,xml-serialization,C#,Xml Serialization,我试图将一个对象序列化为XML,但遇到的问题是该对象被序列化为XML <something /> 而不是 我相信这两者都是有效的XML语法,但我必须得到 这是我的密码 public static string Serialize<T>(T ObjectToSerialize) { XmlWriterSettings settings = new XmlWriterSettings() { OmitXmlDeclaration =

我试图将一个对象序列化为XML,但遇到的问题是该对象被序列化为XML

<something />  

而不是

我相信这两者都是有效的XML语法,但我必须得到

这是我的密码

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();
    }
}
公共静态字符串序列化(T ObjectToSerialize)
{
XmlWriterSettings=新的XmlWriterSettings()
{
OmitXmlDeclaration=true,
Encoding=Encoding.UTF8,
};
XmlSerializer XmlSerializer=新的XmlSerializer(ObjectToSerialize.GetType());
使用(StringWriter textWriter=new StringWriter())
{
使用(var xw=XmlWriter.Create(textWriter,设置))
{
Serialize(xw,ObjectToSerialize);
}
返回textWriter.ToString();
}
}

如何修复它?

可能不是最有效的解决方案,但您可以执行一个简单的
字符串。在
Serialize()
中返回序列化数据之前,请替换

替换

 return textWriter.ToString();


设置Indent=false对您有帮助吗?还有,为什么要省略空格?如果进行反序列化,则不会导致任何问题。仅当节点为空时才会发生。通常你会abc@ManojChoudhariIndent=false没有帮助这就是我在最后所做的,但我正在寻找一个更干净的解决方案
 return textWriter.ToString().Replace(" />","/>");