2009-08-28 5 views
0

J'ai une application avec fonctionnalité de connexion/déconnexion. Lorsque l'utilisateur se déconnecte, je souhaite réinitialiser complètement toutes les classes et variables (j'utilise des classes statiques, ce qui rend le problème encore plus difficile).Comment faire pour réinitialiser complètement une application C# dans le code?

J'ai décidé qu'il valait mieux laisser la réinitialisation et faire un rechargement complet de l'application - l'utilisateur ne connaîtrait pas la différence et il éliminerait toute chapelure possible.

Je voudrais donc quelques idées sur une ou l'autre des éléments suivants (selon le meilleur/plus facile)

1) Recharger l'application en fermant le processus lui-même et le redémarrage 2) Maintenir le fonctionnement de l'application et de réinitialiser toutes les données et variables (y compris les fenêtres) - éventuellement par AppDomain.Unload/Load ou un combo

Un conseil?

Répondre

0

Si l'option 1 est une option valide, alors c'est de loin la plus simple, c'est ce que je ferais.

L'utilisation AppDomains comme un bac à sable est pas sans problèmes que vous pouvez le voir sur cette question: .NET - What's the best way to implement a "catch all exceptions handler"

+0

Je vais tester la solution à 2 lignes suivante, fera rapport: System.Windows.Forms.Application.Restart(); Application.Current.Shutdown(); – bluebit

2

Vous ne voulez probablement pas entendre cela, mais vous êtes en cours d'exécution dans ces questions maintenant parce que la conception originale était très probablement hors de portée. Stocker des données liées à une session utilisateur dans un contexte statique n'est généralement pas la meilleure façon de procéder.

Questions connexes