注入 IOptions 的实例<>



我需要访问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

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

using Microsoft.Extensions.Options

至于为什么它会告诉你这是不必要的,这真是令人头疼。我唯一能想到的就是你的项目中有什么漏洞。打开项目文件夹并删除bin和obj目录。然后重新构建您的项目。如果它仍然不起作用,则可能存在版本冲突。检查所有引用的项目,若有明确包含Microsoft.Extensions.ConfigurationMicrosoft.AspNetCore等的项目,请确保它们都引用了相同版本的NuGet包。

最新更新