【问题标题】:IConfiguration is always NULL .NET CORE in Blazor app / RazorIConfiguration 在 Blazor 应用程序/Razor 中始终为 NULL .NET CORE
【发布时间】:2021-01-29 16:29:33
【问题描述】:

无论我尝试什么,IConfiguration 始终为空。我也尝试将单例添加到启动类,但始终为空...

启动类

        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

这是我的安全课

        IConfiguration _configuration { get;} **<<always null**
        public Security(IConfiguration configuration) **<<always null**
        {
            _configuration = configuration;
        }
         public  string GetConnectionString()
        {
            string connectionString = _configuration.GetConnectionString("localDb");
            return connectionString;

        }

这是我的 Index.Razor 页面

 namespace WebbiSkoolsQuizManager.Pages
{
    public class IndexBase : ComponentBase
    {
        public IConfiguration Configuration { get; }
        public async Task TryLogin(string user, string pass)
        {
            
        }
       
         

        public async Task AddUserHash(string username, string password)
        {
            Security secure = new Security(Configuration);
            string connectionstring = secure.GetConnectionString();
            
            
        }
    }
}

Appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "ConnectionKeys": {
    "localDb": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=Quiz;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"

  },
  "AllowedHosts": "*"
}

提前谢谢你,我已经搜索了高低,关于特定于 blazor 的修复,但我找不到任何东西..(P.S 它的 .Net core 3)

【问题讨论】:

    标签: c# asp.net-core razor configuration blazor


    【解决方案1】:

    我猜这个:public IConfiguration Configuration { get; }

    应该是:

    [Inject]
    public IConfiguration Configuration { get; }
    

    注意:您不能简单地定义服务的属性,并期望它被填充...如果您使用的是 Razor 组件类定义 (.cs),您可以注入服务通过使用[Inject] 属性。如果您使用的是 Razor 组件 (.razor),您可以在组件的视图部分使用 @inject 指令,例如:

    @page "/"
    @inject IConfiguration Configuration
    

    或在@code 部分中,如下所示:

    @code
    {
        [Inject]
        public IConfiguration Configuration { get; }
    
    }
    

    另请注意,如果您想将服务注入到普通的 C# 类中,则需要使用构造函数注入

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-29
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      • 2019-11-12
      • 2021-06-08
      • 1970-01-01
      • 2018-09-28
      相关资源
      最近更新 更多