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

问题描述 投票:0回答:1

我是WPF开发人员。我们已经开发了ERP。我想在Blazor服务器中将应用程序转换为Web。我是Web技术和Blazor的新手。我的问题是我有一个静态类,该类具有将近50个属性(只有属性没有方法)才能在应用程序级别存储某些数据。在用户登录后,我们将在这些属性中设置值,然后在需要的地方使用这些值。现在我的问题是,如何使用我在网上搜索过的此类,发现可以以两种方式使用它。

  1. 添加单例服务。在需要的地方注入它,并使用这些值。
  2. 我可以在需要的任何地方直接使用该静态类,而无需添加服务和注入。

所以这是最佳做法,为什么是我的原因。

blazor-server-side
1个回答
0
投票

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

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

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

在这里,您会找到Microsoft的有用文档,内容涉及您要实现的目标,包括模式和实践:

Configuration Dependency Injection

最诚挚的问候

© www.soinside.com 2019 - 2024. All rights reserved.