我在流式傳輸到文件時遇到問題,我確定有一個簡單的解決方案,但我正在努力尋找它!我試圖做的事情非常簡單,我得到一個類的內容並將它們序列化爲XML並將它們流式傳輸到一個文件中。我使用的代碼是:XmlSerializer和/或StreamWriter沒有釋放它們的內容
ObservableCollection<RackItemViewModel> rackVMs = ProjectTree.GetTreeData();
XmlSerializer serializer = new XmlSerializer(typeof(RackItem));
using (TextWriter tw = new StreamWriter(filename, false))
{
foreach (RackItemViewModel VM in rackVMs)
serializer.Serialize(tw, VM.RackItem);
}
ProjectTree.GetTreeData()只是返回要序列化的數據。如果我運行程序並保存數據,所有數據都按預期工作,則數據將被保存並可通過反序列化讀回。我遇到的問題是當我執行多個保存時。如果我將一組數據保存到一個文件,然後將另一組數據保存到另一個文件,則第一個文件是正確的,但第二個文件是第一個文件和第二個文件的拼接!似乎流或XMLSerializer不會在保存之間釋放它們的內容。我試過使用writefile而不是Stream,但我仍然遇到同樣的問題,我也嘗試刷新並關閉流,但這沒有任何作用。毋庸置疑,如果我關閉並重新啓動應用程序保存它一切正常。 有誰能告訴我我做錯了嗎?
正如我在下面發佈的 - 是否有其他一些代碼?由於據我所知,寫入一個文件,然後另一個文件需要使用兩個獨立的StreamWriters,所以我認爲你有更多的代碼,我們沒有看到... – Charleh 2012-08-15 09:44:54