如何使用.net核心依赖项注入指定参数?

时间:2018-07-12 13:34:22

标签: c# dependency-injection .net-core autofac

使用Autofac考虑以下代码:

 Builder.RegisterType<SecurityCache>().As<ISecurityCache>()
    .WithParameter("id", AppId).SingleInstance()

SecurityCache具有3个参数,其中两个由DI容器处理,然后使用WithParameter指定“ id”参数。如何使用.NET Core DI而不是使用Autofac做到这一点?

我想做

services.AddSingleton<ISecurityCache, SecurityCache>(); 

但是我不确定如何指定id参数。

1 个答案:

答案 0 :(得分:5)

添加服务时,可以使用实现工厂委托。

services.AddSingleton<ISecurityCache>(sp =>
    new SecurityCache(AppId, sp.GetService<IService1>(), sp.GetService<IService2>())
); 

委托可以访问服务提供商,因此您可以解决其他依赖关系。

相关问题