我試圖重新組織我的應用程序的命名空間層次結構,因此我使用System.Runtime.Serialization.SerializationBinder
子類嘗試處理重命名。 (我的大部分改名類的正確序列化爲他們的新的命名空間沒有問題。)重構後對舊版(二進制)文件進行反序列化
我的問題是,我的序列化類一個(實現INotifyPropertyChanged
)未能標記PropertyChanged
事件作爲[field:NonSerialized]
(糟糕) ,所以傳統文件將持續引用該類的傳統Type
(通過序列化委託)。
我在重命名的類上實現了ISerializable
,試圖避免反序列化PropertyChanged
事件,但這似乎沒有奏效 - 嘗試實例化舊的(重命名的)類仍然發生。如何強制BinaryFormatter
避免嘗試反序列化代表?
如果我反序列化一箇中間文件,其中PropertyChanged被標記爲NonSerialized,該文件反序列化沒有問題。 – TreDubZedd 2010-08-16 22:36:36