0

我有一个基于 wcf 的系统,它使用 IRequestChannel 通过通道发送原始 WCF 消息。虽然服务合同不提前知道,但故障合同是已知的,所以我知道每次有故障消息时,它应该映射到 FaultException 类型。

此外,我们使用 XmlSerializer 作为序列化程序,因为 DCS 非常挑剔..

例如下面

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

有没有办法从消息中创建通用故障异常实例?

4

1 回答 1

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);
于 2012-12-11T15:42:42.863 回答