Я использую Prism для приложения и мне нужен диалог входа в систему.Для подтверждения входа в систему мне нужно инициализировать некоторые данные приложения, которые загружаются Prism / MEF, поэтому я не могу поместить их в App.xmal.cs OnStartUp, поэтому я помещаю диалоговое окно входа в загрузчик InitializeShell следующим образом
protected override void InitializeShell()
{
Application.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;
//// Authenticate the current user and set the default principal
LoginDialog auth = new LoginDialog();
auth.WindowStartupLocation = WindowStartupLocation.CenterScreen;
bool? dialogResult = auth.ShowDialog();
// deal with the results
if (dialogResult.HasValue && dialogResult.Value)
{
base.InitializeShell();
Application.Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
}
else
{
Application.Current.Shutdown(-1);
}
#if SILVERLIGHT
Application.Current.RootVisual = (Shell)this.Shell;
#else
Application.Current.MainWindow = (Shell)this.Shell;
Application.Current.MainWindow.Show();
#endif
}
Мне трудно оценить, есть ли какие-либо ловушки или недостатки, у кого-то есть комментарий