2011-09-20 19 views
3

每次我從DataContractSerializer輸出XML時,它都是單行XML字符串。這是有效的XML,但閱讀起來很痛苦。我怎樣才能得到額外的空白添加到那裏打破標籤行中的元素?如何確保DataContractSerializer的文件輸出是「經常」格式化的XML?

public void Save(Stream stream) 
{ 
    DataContractSerializer serializer = new DataContractSerializer(typeof(ObservableCollection<PlottingDeviceInfo>)); 
    serializer.WriteObject(stream, this.Devices); 
} 
+0

使用文本編輯器?也許在Visual Studio中打開它並使用「格式化文檔」? –

+0

我的意思是輸出過程的一部分O_O – Firoso

+0

當然,這取決於你使用什麼代碼來完成你的輸出,所以你肯定應該發佈一些代碼? –

回答

5

使用WriteObject過載,其採用XmlWriter,然後將它傳遞配置以產生相當輸出XmlWriter

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); 
    } 
} 

當你只使用一個StreamWriteObject創建它自己的,默認爲XmlWriter。這是確定格式的XmlWriter等。

+0

乾杯。非常感激。 – Firoso