簡體   English   中英

在 Blazor 應用程序 / ZE405C1DF83BD248A07FC9A91227A

[英]IConfiguration is always NULL .NET CORE in Blazor app / Razor

無論我嘗試什么,IConfiguration 始終是 null。我還嘗試將 singleton 添加到啟動 class,但始終是 Z37A61DA78ECC04DFF9BDA9C

啟動 class

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

        public IConfiguration Configuration { get; }

這是我的安全 class

        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();
            
            
        }
    }
}

應用設置.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 特定的修復,但我找不到任何東西..(PS its.Net core 3)

我猜這個: public IConfiguration Configuration { get; } public IConfiguration Configuration { get; }

應該:

[Inject]
public IConfiguration Configuration { get; }

注意:您不能簡單地定義服務的屬性,並期望它被填充...如果您使用的是 Razor 組件 class 定義(.cs),您可以使用[Inject]屬性。 如果您使用的是 Razor 組件 (.razor),您可以在組件的視圖部分使用@inject指令,例如:

@page "/"
@inject IConfiguration Configuration

或者在@code部分,像這樣:

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

}

另請注意,如果要將服務注入普通的 C# class,則需要使用構造函數注入

I started a new blazor project (.Net 6) and when I @inject the IConfiguration to my.razor file, the configuration object turns out to be always null.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM