缓存管理器和处置
CacheManager and Dispose
我将使用 CacheManager 来为我处理缓存。
我什么时候必须处理它?
是不是每次用using语句访问缓存都要创建?
在这种情况下我每次都必须写我的初始化?
var cache = CacheFactory.Build("cache1", settings =>
{
settings
.WithSystemRuntimeCacheHandle("handle1")
.EnablePerformanceCounters()
.WithExpiration(ExpirationMode.Absolute, TimeSpan.FromMinutes(10));
});
或者我应该如何 use/dispose 呢?我实际上收到了代码分析警告,我应该处理它。
答案是否定的;)
您不想处置 CacheManager 实例。在您的应用程序中保留它的静态实例并且只创建一次 CacheManager 更为常见。
这是因为创建 CacheManager 和创建缓存客户端实例并可能打开与分布式缓存的连接的句柄非常昂贵,并且只能执行一次。从那时起,它应该可以工作并保持为静态参考。
简单地使用 IoC 容器并将其注册为单例也是一个好习惯。然后 IoC 容器可能会为您处理处理。
Is it meant to be created every time I access the cache with a using statement?
不,不应该这样做。
我将使用 CacheManager 来为我处理缓存。 我什么时候必须处理它?
是不是每次用using语句访问缓存都要创建?
在这种情况下我每次都必须写我的初始化?
var cache = CacheFactory.Build("cache1", settings =>
{
settings
.WithSystemRuntimeCacheHandle("handle1")
.EnablePerformanceCounters()
.WithExpiration(ExpirationMode.Absolute, TimeSpan.FromMinutes(10));
});
或者我应该如何 use/dispose 呢?我实际上收到了代码分析警告,我应该处理它。
答案是否定的;)
您不想处置 CacheManager 实例。在您的应用程序中保留它的静态实例并且只创建一次 CacheManager 更为常见。
这是因为创建 CacheManager 和创建缓存客户端实例并可能打开与分布式缓存的连接的句柄非常昂贵,并且只能执行一次。从那时起,它应该可以工作并保持为静态参考。
简单地使用 IoC 容器并将其注册为单例也是一个好习惯。然后 IoC 容器可能会为您处理处理。
Is it meant to be created every time I access the cache with a using statement?
不,不应该这样做。