如何使XmlSerialiser不以<?xml?>开头?

Ben*_*ers 1 c# xml xml-serialization ofx

我正在使用的文件格式(OFX)类似于XML,并且在类似XML的位开始之前包含一堆纯文本内容.它不喜欢在纯文本和XML部分之间,所以我想知道是否有办法让XmlSerialiser忽略它.我知道我可以浏览文件并删除该行,但是首先不写它会更简单,更清洁!有任何想法吗?

Wel*_*bog 6

您必须操作调用Serialize方法时使用的XML编写器对象.它的Settings属性有一个OmitXmlDeclaration属性,您需要将其设置为true.您还需要设置ConformanceLevel属性,否则XmlWriter将忽略该OmitXmlDeclaration属性.

XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
XmlWriter writer = XmlWriter.Create(/*whatever stream you need*/,settings);
serializer.Serialize(writer,objectToSerialize);
writer.close();
Run Code Online (Sandbox Code Playgroud)