注入 IOptions<> 的实例

Inject an instance of an IOptions<>

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

 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

IOptions<T> 肯定在 Microsoft.Extensions.Options 命名空间中,所以这就是您需要的用法:

using Microsoft.Extensions.Options

至于为什么它可能会告诉您它是不必要的,这是一个令人费解的问题。我唯一能想到的是你的项目中有些东西很无聊。打开项目文件夹并删除 bin 和 obj 目录。然后重建你的项目。如果仍然无法正常工作,则可能是版本冲突。检查任何引用的项目,如果有任何项目明确包含 Microsoft.Extensions.ConfigurationMicrosoft.AspNetCore 等,请确保它们都引用相同版本的 NuGet 包。