我想从Autofac转换为Simple Injector ...... 我的问题是设置 命名 实例,并在Simple Injector中设置 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();