0

我想从 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();
4

0 回答 0