dependency-injection - 在 Startup 中初始化 Singleton 变量并在 wole 应用程序中使用它

标签 dependency-injection blazor blazor-webassembly blazor-client-side

我想将数据存储在一个对象中,并且我想在整个应用程序中使用它。我创建了一个对象并在 Program.cs

中注册为 Singleton

对象:

 private Dictionary<string, string> _currentValues;

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

单例注册:

 services.AddSingleton<LocalizeData>();

注册后,在program.cs中,我添加了初始数据。

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

现在我想在整个应用程序中使用这些数据。我把它注入(inject)了主页。

@LocalizeData localizeData

如果我现在使用localizeData.currentValues,则该对象为null

缺少什么。如何在 Starttup 中初始化对象以及如何在整个应用程序中使用数据?

最佳答案

你就快到了。 :D

要在组件中使用服务,您需要使用inject关键字:

@inject LocalizeData localizeData

关于dependency-injection - 在 Startup 中初始化 Singleton 变量并在 wole 应用程序中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66953251/

相关文章:

c# - 是否可以将不同的接口(interface)绑定(bind)到实现所有接口(interface)的类的同一个实例?

c# - Bootstrapper 未加载我的 NinjectModules

c# - "No parameterless constructor defined for this object."用于 Controller 中使用 StructureMap 的 IBus

c# - ASP.NET 有没有办法获取所有单例?

c# - 如何在 Blazor WebAssembly 中获取静态图像文件的文件路径列表?

css - 修改 MatBlazor 应用程序的外观

amazon-cognito - 如何将 OpenID 身份验证从 Blazor WebAssembly 传递到 .NET Core WebApi 后端,两者都使用 Cognito 作为 OpenID 提供程序?

Azure 应用程序无法启动并收到 HTTP 500 错误

c# - 如何使用 Blazor 在客户端生成和保存文件?

c# - 在 Blazor wasm 中自动将访问 token 附加到 HTTP 客户端