【发布时间】:2019-10-03 05:20:19
【问题描述】:
我刚刚将一个 .net 核心应用程序从 2.2 版升级到了 3 版。 在 startup.cs 的 ConfigureServices 方法中,我需要解析身份验证服务使用的服务。 我正在使用“services.BuildServiceProvider()”“构建”所有服务,但 .net core 3 抱怨该方法创建了服务的额外副本,并建议我将依赖注入服务作为“配置”的参数。 我不知道这个建议是什么意思,我想理解它。
public virtual void ConfigureServices(IServiceCollection services)
{
// Need to resolve this.
services.AddSingleton<IManageJwtAuthentication, JwtAuthenticationManager>();
var sp = services.BuildServiceProvider(); // COMPLAINING HERE!!
var jwtAuthManager = sp.GetRequiredService<IManageJwtAuthentication>();
services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(c =>
{
c.TokenValidationParameters = new TokenValidationParameters
{
AudienceValidator = jwtAuthManager.AudienceValidator,
// More code here...
};
}
}
【问题讨论】:
标签: c# asp.net-core dependency-injection