将CacheManager从PerRequestCacheManager更改为MemoryCacheManager

时间:2013-07-09 15:07:17

标签: autofac nopcommerce

在Nopcommerce中,接口ICacheManager的实现被注入到使用缓存的对象中。

其中一个类是CategoryService

public partial class CategoryService : ICategoryService
   {
        private readonly ICacheManager _cacheManager;

       public CategoryService(ICacheManager cacheManager)
   {
   }
}

通过autofac解析依赖关系并使用此注册_cacheManager获取PerRequestCacheManager的实例。

   builder.RegisterType<MemoryCacheManager>().As<ICacheManager>().Named<ICacheManager>("nop_cache_static").SingleInstance();
   builder.RegisterType<PerRequestCacheManager>().As<ICacheManager>().Named<ICacheManager>("nop_cache_per_request").InstancePerHttpRequest();

    builder.RegisterType<CategoryService>().As<ICategoryService>().InstancePerHttpRequest();

我不是为什么使用PerRequestCacheManager。我试图使用这个注册将_cacheManager作为MemoryCacheManager的一个实例,但我仍然得到一个PerRequestCacheManager实例。

   builder.RegisterType<CategoryService>().As<ICategoryService>()
               .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static"))
               .InstancePerHttpRequest();

如何更改注册,以便类别中的_cacheManager获取MemoryCacheManager的实例?

0 个答案:

没有答案