단 한 가지 방법이 성공적으로 실행되었는지 여부를 판단하는 유일한 방법은 예외를 생성하는지 여부입니다.
메서드가 단방향 메서드가 아니어도 메서드가 실패했는지 성공했는지 여부를 나타내는 부울 값을 반환 할 수 있습니다.
내가 왜이 작업을 수행하려고하는지 묻습니다. 메소드에 대한 예외를 포착하지 않으면 예외가 발생할 경우 오류 조건을 알릴 수 없습니다.
"try it"사용에 대해 오해하고 실제로이 메서드를 실행하지 않고서도 작업을 커미트하지 않는 메서드에 대한 프록시를 작성할 수 있습니다. 처리 단계 만 수행합니다.
전체 테스트 목적으로이 작업을 수행하는 경우 Visual Studio 유닛 테스트를 활용하거나 프로젝트를 NUnit으로 배선하는 것이 좋습니다.
위의 사항 중 하나가 귀하의 질문에 답변하지 못한 경우 수행하고자하는 사항에 대해 자세히 알려주십시오.
편집 : Asker에 의한 설명을 위해 수정 됨.
using(YourService svc = new YourService()){
if(svc.State.Equals(!CommunicationState.Opened)){ /*Handle Error*/ }
svc.InnerChannel.Faulted += new EventHandler(YourFaultedEventHander);
}
연결이 현재 열려 있는지 확인하고 서비스가 오류 상태 인 경우 /에 알려줍니다. 이렇게하면 호출이 성공할지 여부를 미리 알 수 있습니다. 그러나 특정 메서드가 실패 할 수있는 조건이 여전히 있습니다.이 메서드는 성공적으로 서비스 메서드를 호출 할 수있는 경우에만 알려줍니다.
좋아요, 그럼 방법이 지금이라면. 그래서 당신은 그 방법을 부르지 만, 그 동안 그 방법은 사라졌습니까? 응용 프로그램을 단순히 중단 시키거나 try/catch 블록을 사용합니까? –
처음 코멘트에서 업데이트를 확인하십시오. 서비스의 현재 상태를 결정할뿐만 아니라 오류 상태 알림을 다룹니다. – VulgarBinary