我正在研究一個.NET項目,其中多個版本的相同類型的對象已在項目生命週期內創建 - 大多數新版本都會添加一個或兩個字段。但是,現在我正在尋求緩解舊版本用戶的問題。如何將缺失字段反序列化爲空
我的目標是,當用戶試圖用新程序打開舊版本的序列化對象時,程序會自動將默認值分配給折舊版本文件中缺少的字段。
例如,假設我有一個包含兩個布爾字段--RoseSound和RepeatForever的類。該計劃的第一個版本不知道如何永遠重複,所以只保存RepeatSound:
<anyType xsi:type="Sound">
<RepeatSound>true</RepeatSound>
</anyType>
但新的文件看起來是這樣的:
<anyType xsi:type="Sound">
<RepeatSound>true</RepeatSound>
<RepeatForever>true</RepeatForever>
</anyType>
我的目標是,當我反序列化新程序中的第一個文件,它將創建Sound對象,但只是將RepeatForever的值默認爲false。現在試圖反序列化第一個對象會引發異常。
感謝您事先的任何答覆
編輯:我使用的是「XmlSerializer的」類
您正在使用哪個序列化程序? – slugster 2010-04-26 22:58:32