1、静态字段不能被序列化
2、事件不能被序列化,除非先把事件文件化,方法如下,摘自 http://blog.sina.com.cn/s/blog_5421dfd20100s9ck.html
写了一个可序列化的类,此类继承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