我正在處理一系列使用DataContractSerializer
序列化和反序列化的字體。在這兩個步驟之間,可以想象用戶已經從他們的機器中刪除了一種字體。我想檢查字體名稱,因爲它正在反序列化,以確保它仍然存在於系統中。如果它不存在,則該元素不包含在由DataContractSerializer.ReadObject()
返回的集合中。反序列化驗證
具體而言,我存儲了一個FontFamily
並序列化了一個屬性,獲得FontFamily.Name
。在此屬性的set訪問器中,我將字符串轉換回FontFamily
。
我能想到的唯一合理的驗證替代方法是使屬性的set訪問器忽略無效值,並在稍後過濾掉無效的反序列化對象。但是我不喜歡這個選擇 - 是否有更合適的方法?
我想那樣可以。我仍然不喜歡這個無效項目仍然被創建的想法,但我想我可以在這種情況下接受它。 Re:數據可移植性,目前,我不會擔心在多臺機器上使用序列化文件。也許以後。 – 2009-02-08 21:06:22