注入IOptions <>的实例

时间:2019-01-24 13:24:02

标签: c# dependency-injection jwt extension-methods asp.net-core-webapi

我需要访问我的JwtSettings的值。我尝试将 IOptions <> 类的实例注入到类的构造函数中,但出现了问题:

 public class JwtHandler : IJwtHandler
 {
    private readonly JwtSettings _jwtSettings;

    public JwtHandler(IOptions<JwtSettings> jwtSettings)
    {
        jwtSettings = _jwtSettings.Value;
    } 
 }

我有错误:

The type or namespace name 'IOptions<>' could not be found 
(are you missing a using directive or an assembly reference?)

当我添加用法时:

using Microsoft.Extensions.Options;

VS告诉我这是不必要的。

已更新:我的程序集:

Microsoft.IdentityModel.Tokens    
System.IdentityModel.Tokens.Jwt

1 个答案:

答案 0 :(得分:1)

IOptions<T>绝对位于Microsoft.Extensions.Options命名空间中,因此您需要使用它:

using Microsoft.Extensions.Options

至于为什么它告诉你没有必要,那真是令人头疼。我唯一能想到的是您的项目中有些乏味。打开项目文件夹,然后删除bin和obj目录。然后重建您的项目。如果仍然无法使用,则可能是版本冲突。检查所有引用的项目,是否有任何明确包含Microsoft.Extensions.ConfigurationMicrosoft.AspNetCore等的项目,请确保它们都引用了那些NuGet软件包的相同版本。