WPF MVVM Model类序列化

今天写代码,碰到如下问题:因为采用了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

posted on 2011-11-22 11:47  恒波  阅读(1735)  评论(1编辑  收藏  举报

导航