代码之家  ›  专栏  ›  技术社区  ›  4est

注入IOptions实例<>

  •  0
  • 4est  · 技术社区  · 6 年前

    我需要访问我的jwtsettings的值。我试图注入一个 IOPOTIONS<gt; 类的构造函数,但我遇到了问题:

     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 回复  |  直到 6 年前
        1
  •  1
  •   Chris Pratt    6 年前

    IOptions<T> 肯定是在 Microsoft.Extensions.Options 名称空间,因此这是您需要的用途:

    using Microsoft.Extensions.Options
    

    至于为什么它会告诉你这是不必要的,那是一个令人头疼的问题。我能想到的唯一一件事就是你的项目中有一些东西被借用了。打开项目文件夹,删除bin和obj目录。然后重建项目。如果它仍然不起作用,您可能有版本冲突。检查任何引用的项目,如果有明确包括 Microsoft.Extensions.Configuration , Microsoft.AspNetCore 等等,确保它们都引用了这些nuget包的相同版本。