在导航上重新创建Blazor单例对象

格雷戈里·布拉德

在blazor中加载新页面时,我的单例对象不保持其状态。

我有这个界面:

public interface IPreLaunchSession
    {
        bool IsPreLaunchAuthenticated { get; set; }
    }

该接口的类

 public class PreLaunchSession : IPreLaunchSession
    {

        public bool IsPreLaunchAuthenticated { get; set; }

        public PreLaunchSession()
        {

        }
    }

我将其注册为单身人士

builder.Services.AddSingleton<IPreLaunchSession,PreLaunchSession>(); 

然后将其注入页面

@inject Services.IPreLaunchSession PreLaunchSession

在注入这些页面的地方,我测试并设置了bool变量。

在另一部分代码中,我使用NavigationManager进行重定向。像这样:

Navigation.NavigateTo("/MyOtherPath");

这似乎可以工作一段时间,但随后使用a<NavLink/>可以转到另一页,一旦发生这种情况,就似乎重新创建了PreLaunchSession对象,并且其中的bool变量被重置为默认值(这是错误的)

这里的任何帮助都将有助于理解为什么导航发生时会重新创建单例对象。

格雷戈里·布拉德

看看如何在页面重新加载时在blazor Web程序集中的单例状态容器中保留值

刷新应用程序(F5等)时,该应用程序实际上已关闭并再次打开。

这将导致整个应用程序重新启动,并且持久性单例对象的所有内存都将丢失。

我最终使用localstorage在完全刷新或制表符更改之间保持不变。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重新创建序列

来自分类Dev

如何避免在Android的onCreate上重新创建视图?

来自分类Dev

Windows Store App中的导航-是否在“后向导航”上重新创建页面?

来自分类Dev

定期重新创建对象

来自分类Dev

Unity RegisterInstance重新创建每个请求的单例

来自分类Dev

是否重新创建对象/引用/指针以添加const

来自分类Dev

重新创建为对象和类PHP

来自分类Dev

尝试在CSS3中重新创建WebOS样式导航

来自分类Dev

Java:删除并重新创建对象

来自分类Dev

无法在Heroku上重新创建环境

来自分类Dev

重新创建一个基于shared_ptr的单例

来自分类Dev

多重处理不会重新创建对象

来自分类Dev

重新创建已创建的片段?

来自分类Dev

导航回到抖动后重新创建流

来自分类Dev

难度设置集中在javascript中新创建的对象上

来自分类Dev

在jquery / javascript中重新创建Chrome iOS滚动导航栏效果

来自分类Dev

在导航堆栈中重新创建viewController

来自分类Dev

Android在finish()上重新创建Activity

来自分类Dev

做出决定时,Starling重新创建新对象

来自分类Dev

在dispose()调用之后重新创建JinternalFrame对象

来自分类Dev

在先前的SHA上重新创建远程分支

来自分类Dev

重新创建为对象和类PHP

来自分类Dev

在Debian上重新创建/ boot

来自分类Dev

Java:删除并重新创建对象

来自分类Dev

在Application Destroy上,Android重新创建服务

来自分类Dev

尝试重新创建我的console.log对象

来自分类Dev

每帧重新创建FBO(帧缓冲对象)

来自分类Dev

Delphi - 新创建的表单上的表单创建和对象

来自分类Dev

在 javascript 上重新创建 JQuery 视差效果