【发布时间】:2017-11-07 18:55:21
【问题描述】:
我想知道 System.Runtime.Cache.MemoryCache 是否将对象编组到单独的资源空间中,或者它是否与调用对象位于同一资源空间中?
例如,假设我在某个抽象对象上编写了一个辅助方法,它允许我将对象(例如 DataTables)读取和写入缓存:
public static void WriteCache(string KeyName, object Item, int ExpireMinutes = 30)
{
ObjectCache cache = MemoryCache.Default;
CacheItemPolicy policy = new CacheItemPolicy();
policy.SlidingExpiration = new TimeSpan(0, ExpireMinutes, 0);
policy.Priority = CacheItemPriority.Default;
cache.Add(new CacheItem(KeyName, Item), policy);
}
然后发送一个DataTable到缓存中:
WriteCache("MY_DATA", dt, 15);
会不会在调用代码中释放DataTable,之后,也会在Cache中释放DataTable?还是将 DataTables 复制到缓存中(就像 COM+ 对象,在服务器模式下,当它编组到其资源空间时)?
【问题讨论】:
标签: c# caching com+ memorycache