我正在使用IErrorHandler来捕获我的WCF服务中处理和记录目的的异常。我在ProvideFault(.....)方法中捕获异常,并从此处向客户端发送Fault Exception。
以下是它的示例代码..
public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
{
FaultException<MyResponse> fe = new FaultException<MyResponse>(
new ErrorResponse
{
MessageCode = "ERR001",
MessageDetail = "Error Occured at server Side"
});
MessageFault faultMsg = fe.CreateMessageFault();
fault = Message.CreateMessage(version, faultMsg, fe.Action);
}
MyResponse是自定义类型。
现在由于一些需求变化,我不想从服务中发送FaultMessage。我可以从ProvideFault方法发送MyResponse对象吗?像...一样的东西。
MyResponse response = new MyResponse();
response.MessageCode = "ERR001";
response.MessageDetail = "Error Occured at server Side";
Message.CreateMessage(version, response, response.Action);
因此,可以在客户端处理所有方案。这种更改的原因是所有客户端都可能无法处理FaultException。
我不想在我的服务中使用try catch并从catch发送响应,而是我想使用IErrorHandler。 任何建议都将受到高度赞赏。