阻止XmlSerializer格式化输出

当使用XmlSerializer的默认设置时,它将输出XML作为格式化值。

IE:沿着这些方向发展。

   12345 10.32   45632 5.43   

如何防止输出上的任何类型的格式? 所以我想要实现的是这个。

    123456 10.57   789123 133.22   

编辑:我的方法的完整代码是

 public static String Serialize(Stock stock) { XmlSerializer serializer = new XmlSerializer(typeof(Stock)); using (StringWriter stringWriter = new StringWriter()) { serializer.Serialize(stringWriter, stock); return stringWriter.ToString(); } } 

不是很直观,但XmlWriterSettings上的Indent属性控制整个格式:

 var serializer = new XmlSerializer(typeof(MyClass)); using (var writer = new StreamWriter("file.path")) using (var xmlWriter = XmlWriter.Create(writer, new XmlWriterSettings { Indent = false })) { serializer.Serialize(xmlWriter, myObject); } 

您可能想要探索的XmlWriterSettings上还有一些选项。

解析生成的XML并删除换行符和标签很简单…
使用’Indent = false’,仍会将元素放在换行符上吗?

..

 XmlSerializer xmlser = new XmlSerializer(...); XmlWriterSettings settings = new XmlWriterSettings {Indent = false}; using (XmlWriter xw = XmlWriter.Create(stream, settings)) {