【发布时间】:2010-09-15 00:10:05
【问题描述】:
我正在尝试重新组织我的应用程序的命名空间层次结构,因此我使用System.Runtime.Serialization.SerializationBinder 子类来尝试处理重命名。 (我重命名的大多数类都正确反序列化到它们的新命名空间中,没有问题。)
我遇到的问题是 一个 我的序列化类(实现INotifyPropertyChanged)未能将PropertyChanged 事件标记为[field:NonSerialized](哎呀),所以遗留文件保留对该类的旧版Type 的引用(通过序列化委托)。
我已经在重命名的类上实现了ISerializable,以避免反序列化PropertyChanged 事件,但这似乎没有奏效——仍然会尝试实例化旧的(重命名的)类。
如何强制 BinaryFormatter 避免尝试反序列化委托?
【问题讨论】:
-
如果我反序列化一个中间文件,其中 PropertyChanged 被标记为 NonSerialized,该文件被反序列化没有问题。
标签: c# delegates serialization