Blazor 服务器中的静态类与注入

Pre*_*rem 5 blazor blazor-server-side

我是一名 WPF 开发人员。我是 ERP 应用程序开发团队的一员。我想将应用程序转换为 Blazor Web 服务器。我是 Web 技术和 Blazor 的新手。

我们有一个静态类,它有近 50 个属性(只有属性,没有方法),用于在应用程序级别存储某些数据。我们在用户登录时设置这些属性值。之后,我们在需要的地方使用这些值。

现在我的问题是,如何在 Blazor 中使用此类?我在网上搜索了一下,找到了两种方法。

  1. 添加单例服务。将其注入到需要的地方并使用它的值。
  2. 在需要的地方直接使用静态类,无需服务注入。

对于我的情况,哪种方法是最好的方法,为什么?

Vi1*_*100 5

这两种方法在“语法上”都可能是正确的,但依赖注入将为您提供最佳的灵活性。自从过渡到.NET Core以来,DI已经集成到框架中,因此实现它非常简单(尽管一开始很难控制它)。

不管怎样,阅读你的问题,你似乎假装存储一些与用户相关的数据以供以后使用。如果是这种情况,那么单例将不是这里的最佳选择,因为您现在处于多用户环境中,并且所有用户每次都会访问同一个实例。

您应该创建一个工厂,为每个用户创建该类,然后在 DI 上将其注册为scoped,因为这种对象会持续用户的所有会话。

在这里,您将找到来自 Microsoft 的有用文档,了解您想要实现的目标,包括模式和实践:

配置依赖注入

此致