我有一个具有登录/注销功能的应用程序。当用户注销时,我想完全重置所有类和变量(我使用静态类,所以这使问题变得更加困难)。
我已经决定最好离开重置并完全重新加载应用程序 - 用户不会知道其中的区别,它会清除任何可能的面包屑。
所以我想对以下任何一个提出一些想法(以最好/最简单的为准)
1)通过关闭进程本身并重新启动来重新加载应用程序 2)保持应用程序运行并重置所有数据和变量(包括窗口) - 可能通过 AppDomain.Unload / Load 或一些组合
有什么建议吗?
你可能不想听到这个,但你现在遇到了这些问题,因为最初的设计很可能是不正常的。在静态上下文中存储与用户会话相关的数据通常不是处理事情的最佳方式。
如果选项 1 是一个有效的选项,那么它是迄今为止最简单的,所以这就是我要做的。
从这个问题可以看出,使用 AppDomains 作为沙箱并非没有问题:.NET - What's the best way to implement a "catch all exceptions handler"