Я использую WCF для системы клиентских серверов. Когда я добавляю служебную ссылку на IService на сервере, создается класс ServiceClient класса proxy. Мой код выглядит следующим образом:Повторное использование класса клиента в WCF после его устранения
ServiceClient client = new ServiceClient();
try
{
client.Operation1();
}
catch(Exception ex)
{
// Handle Exception
}
try
{
client.Operation2();
}
catch(Exception ex)
{
// Handle Exception
}
Проблема заключается в том, что если есть исключение связи в первом вызове, изменения состояния клиента к Faulted, и я не знаю, как восстановить его, чтобы сделать второй звонок. Есть ли способ открыть его? или я должен создать новый и заменить экземпляр (это не похоже на элегантный способ)?
Проблема заключается в том, что у нас есть внутренняя функция, которая получает делегата функции на прокси-сервере службы и многократно выполняет эту функцию до тех пор, пока не будет выбрано исключение связи (наша реализация для автоматического повторного подключения). Таким образом, в этом решении функция создаст экземпляр прокси для каждой попытки выполнения и ему придется возвращать обновленный экземпляр вызывающему, поэтому он не будет иметь закрытый прокси ... Вид уродливого: -/ – Andy