Blazor 服务器范围在刷新页面时再次初始化

Sim*_*bbs 4 c# blazor blazor-server-side

我创建了一个简单的 Blazor 服务器应用程序:类“UserSettings.cs”被注入到组件中。

     public class UserSettings
     {
         public Guid Id{ get; } = Guid.NewGuid();
     }
 
     services.AddScoped<UserSettings>();

Run Code Online (Sandbox Code Playgroud)

我在不同组件的 UserSetting 服务中显示 Id。切换组件后,Id 保持不变,但是当我刷新页面时,它会发生变化。为什么刷新页面时Service会重新初始化?

Isa*_*aac 7

您的服务范围仅限于电路连接...刷新页面时,会创建一个新的电路对象。您可以改用 AddSingleton,但在这种情况下,所有用户可能会看到相同的 ID。

为什么不在你的App第一次渲染时创建Id,并将其保存在会话存储或本地存储中以供使用?