2012-12-11 6 views
0

IRequestChannel을 사용하여 채널을 통해 원시 WCF 메시지를 보내는 wcf 기반 시스템이 있습니다. 서비스 계약이 미리 알려지지는 않았지만 오류 계약이 알려져 있으므로 오류 메시지가있을 때마다 FaultException 유형에 매핑해야합니다.wcf 메시지에서 FaultException 생성

또한

DCS가 매우 까다 롭고이기 때문에 우리는 시리얼에 대한 XmlSerializer를를 사용하는 ..

var requestChannel = this.GetRequestChannel(); 
using (requestChannel as IDisposable) 
{ 
     responseMessage = requestChannel.Request(requestMessage); 
    } 
    if (responseMessage.IsFault) 
    { 
     throw new ApplicationException("Fault");     
    } 

아래의 예를 들어

메시지에서 일반 오류 예외 인스턴스를 만들 수있는 방법이 있나요?

+0

당신이 오류 예외가 어떤 종류의 싶습니다를? 'new FaultException()'이외의 것이 있습니까? –

+0

모든 오류 메시지가 특정 유형이 될 것이라는 것을 알고 있습니다. TDetail을 말하십시오. 그래서 이상적으로 새로운 FaultException을 만들려합니다. (responseMessage); –

+0

나는 당신의 문제가 무엇인지 모르겠다. 그냥 새 FaultException을 던져 (params); ' –

답변

0

는 WCF 작업 계약에 결함 계약을 추가

[ServiceContract()] 
public interface IService 
{ 
    [OperationContract] 
    [FaultContract(typeof(MyFaultException))] 
    string GetMessage(); 
} 

을 다음 오류가 오류 예외 던질 때 :

MyFaultException theFault = new MyFaultException(); 
heFault.Reason = "Some Error Message"; 
throw new FaultException<MyFaultException>(theFault); 
+0

나는 강력하게 형식화 된 계약이 없으며 wcf 채널을 통해 원시 비누 메시지를 보내고 있습니다. 또한 wcf 메시지에서 오류 예외 개체를 만들려고. –

관련 문제