formatter屬性 c#序列化BinaryFormatter和XmlFormatter的區(qū)別?
c#序列化BinaryFormatter和XmlFormatter的區(qū)別?當(dāng)BinaryFormatter序列化用戶定義類的對(duì)象時(shí),序列化后的流包含空字符,因此無(wú)法反序列化。反序列化時(shí),它總是報(bào)告一個(gè)
c#序列化BinaryFormatter和XmlFormatter的區(qū)別?
當(dāng)BinaryFormatter序列化用戶定義類的對(duì)象時(shí),序列化后的流包含空字符,因此無(wú)法反序列化。反序列化時(shí),它總是報(bào)告一個(gè)錯(cuò)誤,即“在分析完成之前遇到流的結(jié)尾”(已調(diào)用)流。查找(0, SeekOrigin。開始))
使用xmlformatter序列化后,可見流中沒有空字符,解決了上述問題。但是,類必須具有無(wú)參數(shù)構(gòu)造函數(shù),并且每個(gè)屬性都必須可讀寫,也就是說,必須同時(shí)定義getter和setter。如果只定義了getter,則反序列化后獲得的每個(gè)屬性的值都為null。