c# - 注入(inject) IOptions<> 的实例

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

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

 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.Configuration , Microsoft.AspNetCore等。确保它们都引用这些 NuGet 包的相同版本。

关于c# - 注入(inject) IOptions<> 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54347707/

相关文章:

c# - IDX12723 : Unable to decode the payload '[PII of type ' System. 字符串'被隐藏

dependency-injection - 如何使用 StructureMap 为静态类指定 setter 注入(inject)?

c# - SonarLint 是否比 SonarAnalyzer.CSharp 有任何优势

c# - 城堡 ActiveRecord : Map to IUserType wihtin Class in C#

c# - LINQ - 将字符串转换为日期时间

java - 无法解析类型 : xxx; Qualifiers: [@javax. enterprise.inject.Any()] 的任何 bean]

xamarin - DependencyService.Get<>() 不起作用

asp.net - 使用 f#/fable/asp.net/react 添加 google 登录按钮

python - 是否可以使用签名的 JWT 对 Google Drive API 进行授权调用?

c# - 在数据集中添加数据表的列