C# CacheManager和Dispose

C# CacheManager和Dispose,c#,caching,dispose,cachemanager,C#,Caching,Dispose,Cachemanager,我将使用应该为我处理缓存的。 我必须什么时候处理它 是否意味着每次使用using语句访问缓存时都要创建它 在这种情况下,我每次都必须编写初始化 var cache = CacheFactory.Build("cache1", settings => { settings .WithSystemRuntimeCacheHandle("handle1") .EnablePerformanceCounters() .With

我将使用应该为我处理缓存的。 我必须什么时候处理它

是否意味着每次使用using语句访问缓存时都要创建它

在这种情况下,我每次都必须编写初始化

var cache = CacheFactory.Build("cache1", settings =>
{
    settings
        .WithSystemRuntimeCacheHandle("handle1")
            .EnablePerformanceCounters()
            .WithExpiration(ExpirationMode.Absolute, TimeSpan.FromMinutes(10));
});

或者我应该如何使用/处置它?实际上,我收到了代码分析警告,要求我处理它。

答案是否定的

您不希望处置CacheManager实例。更常见的是在应用程序中保留它的静态实例,并且只创建一次CacheManager

这是因为创建CacheManager和句柄(创建缓存客户机实例并可能打开到分布式缓存的连接)非常昂贵,而且只能执行一次。从那时起,它应该作为一个静态引用工作并保持不变

简单地使用IoC容器并将其注册为singleton也是一种很好的做法。然后IoC容器可能会以任何方式为您处理处理

是否意味着每次使用using语句访问缓存时都要创建它


不,不应该这样做。

我确实认为您会处理它,因为它会自动处理。可能我们可以在应用程序关闭时进行处理