Предположим, у меня есть клиентское приложение .NET, которое подключается к службе WCF, или, возможно, очередь сообщений. Во время обычного выполнения программы возможно, что могут быть потери соединения или, возможно, пользователь был вынужден выйти из системы администратором, или администратор отправляет сообщение приложению для изменения и входа в систему на другой сервер WCF (например, некоторые форма ручной балансировки нагрузки).
Клиентское приложение узнает об этом только тогда, когда один из многих низкоуровневых методов связывается с вызовом WCF, и он завершается неудачей.
Когда такое происходит, я бы хотел, чтобы приложение и все его окна каким-то образом были отключены / скрыты, чтобы диалоговое окно / всплывающее окно появлялись и выполняли переподключение, и после успешного завершения работы окна снова отображались.
Как можно это сделать? Проблема, которую я вижу, состоит в том, что код, который первым обнаруживает наличие проблемы, находится на самом низком уровне (т. Е. Может быть в результате нажатия кнопки в диалоговом окне, расположенном поверх основных окон). Вроде как программа должна быть наизнанку, чтобы справиться с ней интуитивно. Поэтому я предполагаю, что есть какие-то шаблоны или структуры, которые помогают с этим?