簡體   English   中英

在 Startup 中初始化 Singleton 變量並在 wole 應用程序中使用它

[英]Initialize Singleton variable in Startup and use it in wole app

我想將數據存儲在 object 中,並且我想在整個應用程序中使用它。 我創建了一個 Object 並在Program.cs中注冊為 Singleton

Object:

 private Dictionary<string, string> _currentValues;

 public Dictionary<string, string> currentValues
 {
      get => _currentValues;
      set
      {
           _currentValues = value;
           StateHasChanged();
      }
}

Singleton 注冊:

 services.AddSingleton<LocalizeData>();

在注冊后的program.cs中,我添加了初始數據。

var _localizeData = host.Services.GetRequiredService<LocalizeData>();
_localizeData.currentValues = locaData;

現在我想在整個應用程序中使用這些數據。 我將其注入主頁。

@LocalizeData localizeData

如果我現在使用localizeData.currentValues object 是null

什么不見了。 如何在 Starttup 中初始化Starttup以及如何在整個應用程序中使用數據?

您快到了。 :D

要在組件中使用服務,您需要使用inject關鍵字:

@inject LocalizeData localizeData

問題是我用過

await builder.Build().RunAsync();

代替

await host.RunAsync();

這就是我創建第二個實例但無法訪問初始化數據的原因。

請參閱文檔: https://docs.microsoft.com/en-us/aspnet/core/blazor/fundamentals/dependency-injection?view=aspnetcore-5.0&pivots=webassembly

暫無
暫無

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

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