如何在代码中完全重置c#app?

时间:2009-08-28 08:34:21

标签: c# appdomain reset

我有一个具有登录/注销功能的应用程序。当用户注销时,我想完全重置所有类和变量(我使用静态类,因此这会使问题更加困难)。

我已经决定最好离开重置并完全重新加载应用程序 - 用户不会知道差异,它会清除任何可能的面包屑。

所以我想对以下任何一个(无论哪个是最好/最简单的)

提出一些想法

1)通过关闭进程本身并重新启动来重新加载应用程序 2)保持应用程序运行并重置所有数据和变量(包括窗口) - 可能通过AppDomain.Unload / Load或某些组合

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

你可能不想听到这个,但是你现在遇到了这些问题,因为最初的设计很可能是不合适的。在静态上下文中存储与用户会话相关的数据通常不是最好的方法。

答案 1 :(得分:0)

如果选项1是有效选项,那么它是迄今为止最简单的选项,所以这就是我要做的。

使用AppDomains作为沙箱并非没有问题,您可以从这个问题中看到:.NET - What's the best way to implement a "catch all exceptions handler"