WPF MVVM Model类序列化

it2022-05-09  26

今天写代码,碰到如下问题:因为采用了MVVM,需要将Model类序列化,总是出错..

写了一个可序列化的类,此类继承INotifyPropertyChanged接口,需要实现事件:

public event PropertyChangedEventHandler PropertyChanged;编译通过,但在序列化的时候,报错“程序集“WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”中的类型“System.ComponentModel.PropertyChangedEventManager”未标记为可序列化。”,猜测是event PropertyChanged的问题,可怎样才能不让他序列化呢,加了 [NonSerialized()]这个编译无法通过。后来在网上看到,对于事件,[NonSerialized()]是错误的写法,正确的写法应该是[field:NonSerializedAttribute()] ,即:

[field:NonSerializedAttribute()]

public event PropertyChangedEventHandler PropertyChanged;

原因:事件不是字段,因此需要多一步,将它设置为字段。

参考msdn的帮助

http://msdn.microsoft.com/zh-cn/library/system.nonserializedattribute

转载于:https://www.cnblogs.com/hengbo/archive/2011/11/22/2258531.html


最新回复(0)