Насколько мне известно, единственный способ определить, успешно ли выполняется односторонний метод, - генерировать ли он исключение.
Если метод НЕ ДОЛЖЕН быть односторонним, вы можете вернуть логическое значение, в котором указано, был или нет метод успешным или нет.
Могу я спросить, почему вы пытаетесь это сделать?Без перехвата исключения в методе невозможно определить условия возникновения ошибки, если исключение действительно имеет место.
Если я неправильно понимаю, как вы используете его «попытаться», и вы имеете в виду, фактически не выполняя метод,вы можете написать прокси для метода, который фактически не фиксирует действие, а только выполняет этап обработки.
Если вы делаете это исключительно для целей тестирования, я бы рекомендовал воспользоваться преимуществами модуля Visual Studio.тестирование или подключение вашего проекта к NUnit.
Пожалуйста, предоставьте более подробную информацию о том, чего вы пытаетесь достичь, если один из пунктов выше не ответил на ваш вопрос.
РЕДАКТИРОВАТЬ: Изменено дляуточнение от asker.
using(YourService svc = new YourService()){
if(svc.State.Equals(!CommunicationState.Opened)){ /*Handle Error*/ }
svc.InnerChannel.Faulted += new EventHandler(YourFaultedEventHander);
}
Покроет вас, чтобы увидеть, открыто ли в данный момент соединение, И уведомит вас, если / когда служба перейдет в состояние отказа.Это упреждающе сообщит вам, будет ли вызов успешным.Однако все еще существуют условия, которые могут привести к сбою этого конкретного метода. Это будет уведомлять вас, только если вы сможете успешно вызвать метод обслуживания.