求救,Region反序列化出错
代码如下:
SerializableRegion RDStore = new SerializableRegion(this.Region);
Stream sw = File.Create(@"C:\FormMap.bin");
bf.Serialize(sw, RDStore); //到此,成功生成文件保存了序列化数据
sw.Seek(0, SeekOrigin.Begin);
RDStore = (SerializableRegion)bf.Deserialize(sw);//这一行出错,提示:
未将对象引用设置到对象的实例 sw.Close();
注:SerializableRegion 是一个复杂类.
不知道要怎么解决?我是照着书做的,很奇怪会出错...新手,请多多指教.
------解决方案--------------------
关键是在VS2005中RegionData的构造方法是私有的,不能访问
捣腾一下:
C# code
protected SerializableRegion(SerializationInfo info, StreamingContext context)
{
if (info == null)
throw new System.ArgumentNullException("info");
Region r = new Region();
RegionData d = r.GetRegionData();
d.Data = (byte[])info.GetValue("Data", typeof(byte[]));
this._region = new Region(d);
r.Dispose();
}