Every time I output XML from a DataContractSerializer, it's a single line XML string. This is valid XML, but it's a pain to read. How can I get additional whitespace added in there to break out elements into tabbed lines?
public void Save(Stream stream)
{
DataContractSerializer serializer = new DataContractSerializer(typeof(ObservableCollection<PlottingDeviceInfo>));
serializer.WriteObject(stream, this.Devices);
}
Use the WriteObject overload that takes an XmlWriter, then pass it an XmlWriter configured to produce pretty output.
public void Save(Stream stream)
{
DataContractSerializer serializer = new DataContractSerializer(typeof(ObservableCollection<PlottingDeviceInfo>));
using (var writer = XmlWriter.Create(stream, new XmlWriterSettings{Indent=true}))
{
serializer.WriteObject(writer, this.Devices);
}
}
When you just use a Stream, WriteObject creates it's own, default XmlWriter. It's the XmlWriter that determines the format, etc.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With