我有一個奇怪的情況 - 它發生在一些客戶使用XmlSerializer在運行時保存的配置文件保存爲零序列(值爲0的字節)。文件長度是給定XML輸出的預期文件大小(大約350字節)。爲什麼XmlSerializer將對象序列化爲包含零而不是XML的文件?
這是用於序列化的文件中的代碼:
XmlSerializer s = new XmlSerializer(this.GetType());
using (StreamWriter sw = new StreamWriter(File.Create(path), Encoding.Default))
{
s.Serialize(sw, this, new XmlSerializerNamespaces());
}
配置文件模型簡單 - 與類型字符串,布爾,DateTime和枚舉類型的一個屬性的自動屬性的類。
- 我相信
File.Create
一些後續的故障不會導致此 - 如果我這樣做File.Create上的現有文件,它只是將它的長度爲零。 - 我試過
s.Serialize call
之前加入throw new Exception()
聲明 - 也不是罪魁禍首 - 文件被調整到零長度
什麼引起的XmlSerializer輸出零,而不是實際的XML?
在序列化沒有例外原來的答覆? – Reniuz 2014-11-04 09:38:48
不幸的是,當發生這種情況時我無法訪問日誌,所以我不知道是否有異常。我只能訪問全部爲零的配置文件,顯然不能反序列化。 – Marek 2014-11-04 09:43:51
馬克可能是正確的[默認編碼](https://social.msdn.microsoft.com/Forums/en-US/5e461f33-de14-46a0-bdb0-fbaeaf409afb/xmlserializer-creating-blank-files?forum=asmxandxml ) – Reniuz 2014-11-04 10:01:46