在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的实例?