相关疑难解决方法(0)

如何在使用override void WriteEndElement()时使用XmlWriterSettings()?

我正在使用不导入缩写的空xml元素的遗留应用程序.例如:

坏空:

<foo />
Run Code Online (Sandbox Code Playgroud)

好空:

<foo></foo>
Run Code Online (Sandbox Code Playgroud)

我知道实现这一目标的解决方案,我现在将介绍:

public class XmlTextWriterFull : XmlTextWriter
{


    public XmlTextWriterFull(Stream stream, Encoding enc) : base(stream, enc)
    {
    }

    public XmlTextWriterFull(String str, Encoding enc) : base(str, enc) 
    {
    }

    public override void WriteEndElement()
    {
        base.WriteFullEndElement();
    }
}
Run Code Online (Sandbox Code Playgroud)

和客户端代码:

                    var x_settings = new XmlWriterSettings();
                    x_settings.NewLineChars = Environment.NewLine;
                    x_settings.NewLineOnAttributes = true;
                    x_settings.NewLineHandling = NewLineHandling.Replace;
                    x_settings.CloseOutput = true;
                    x_settings.Indent = true;
                    x_settings.NewLineOnAttributes = true;

                    //var memOut = new MemoryStream();
                    var writer = new XmlTextWriterFull(outputFilename, Encoding.UTF8); //Or the encoding of …
Run Code Online (Sandbox Code Playgroud)

c# xml serialization

10
推荐指数
1
解决办法
8311
查看次数

标签 统计

c# ×1

serialization ×1

xml ×1