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会重新初始化?
您的服务范围仅限于电路连接...刷新页面时,会创建一个新的电路对象。您可以改用 AddSingleton,但在这种情况下,所有用户可能会看到相同的 ID。
为什么不在你的App第一次渲染时创建Id,并将其保存在会话存储或本地存储中以供使用?