对象进行深拷贝时出现的问题,求解答
吃草的猪 2011-12-13 11:50:02 我写了一个从缓存中返回一个对象的深拷贝的方法,代码如下。
现在的问题是,当一个人操作页面的时候是不会有问题的,当两个或者多个人同时操作这个页面的时候,偶尔会出现 未将对象设置到引用 之类的错误提示。
经过测试,错误就是出现在 return formatter.Deserialize(memoryStream); 这句代码上,但我仔细检查了,memoryStream是有值的,并且出错时的指针是指在位置88处。我也没有用到多线程之类的代码,究竟问题是出在哪里呢?
MemoryStream memoryStream = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter(null, new StreamingContext(StreamingContextStates.Clone));
try
{
formatter.Serialize(memoryStream, HttpRuntime.Cache.Get("object_1"));
//memoryStream.Seek(0, SeekOrigin.Begin);
//反序列化至另一个对象
memoryStream.Position = 0;
return formatter.Deserialize(memoryStream);
}
catch //(Exception ex)
{
throw new Exception(memoryStream.Position);
}
finally
{
memoryStream.Position = 0;
//关闭流
memoryStream.Flush();
memoryStream.Close();
}