我想从 Autofac 转换为 Simple Injector ...我的问题是在 Simple Injector 中设置Named实例并设置WithParameter .. 这是 autofac 代码:
//cache managers
if (config.RedisCachingEnabled)
{
builder.RegisterType<RedisConnectionWrapper>().As<IRedisConnectionWrapper>()
.SingleInstance();
builder.RegisterType<RedisCacheManager>().As<ICacheManager>()
.Named<ICacheManager>("snt_cache_static")
.InstancePerLifetimeScope();
}
else
{
builder.RegisterType<MemoryCacheManager>().As<ICacheManager>()
.Named<ICacheManager>("snt_cache_static")
.SingleInstance();
}
builder.RegisterType<PerRequestCacheManager>().As<ICacheManager>()
.Named<ICacheManager>("snt_cache_per_request")
.InstancePerLifetimeScope();
builder.RegisterType<SettingService>().As<ISettingService>()
.WithParameter(ResolvedParameter.ForNamed<ICacheManager>("snt_cache_static"))
.InstancePerLifetimeScope();