问题虽小,却让我奇怪了好大一顿啊,估计还有不少兄弟会掉到同样的坑里,供借鉴。
第一个问题 ,二进制反序列化时遇到“在分析完成之前就遇到流结尾。”问题。
再确定自己的代码没有问题的情况下检查一下你序列化的实体类是否直接或间接的实现了接口"INotifyPropertyChanged",这个接口会导致“在分析完成之前就遇到流结尾。”问题。所以,有可能根本就不是反序列化的代码有问题啊。
如果,要解决这个问题,一种方法是不是必须实现“INotifyPropertyChanged”的情况下去掉对该接口的继承,一般被序列化保存的实体不必实现该接口;
第二种方法,如果必须要实现该接口,可以在该接口的“PropertyChanged”事件上加一个[field: NonSerialized]特性标明事件不序列化。
[field: NonSerialized]
public event PropertyChangedEventHandler PropertyChanged;
第二个问题,关于在EntityFramework(EF)中,返回数据集并且返回输出参数的方法。
当你百思不得其解,为何输出参数的ObjectParameter对象的值不会改变时,请将获取该参数值的语句移至遍历数据集语句的后面,这个问题困扰了我好半天,最终才找到这个方法,我是在EF4.0中遇到的这个问题。
时间不早了 ,改日做两个实例代码上来。