我要缓存一个对象。来自http://msdn.microsoft.com/en-us/library/ms227644(v=vs.80).aspx的阅读政策前明显且流行的检查
if (Cache["customerDataSet"] == null)
{
dataSet = DataSetConfiguration.CustomerDataSet;
Cache["customerDataSet"] = dataSet;
}
else
{
dataSet = (DataSet)Cache["customerDataSet"];
}
确保数据集对象的存在。由于 dataSet 只是对对象的引用,因此缓存中的实际 dataSet 可以在几毫秒内消失,例如在 foreach 循环的中间。如果是这样,这个:
dataSet = ((DataSet)Cache["customerDataSet"]).Copy();
应该更安全。尽管缓存仍然可以在 .Copy() 期间过期。我是对的还是只是想多了?