从WCF中的ProvideFault()方法发送自定义响应

时间:2014-09-23 06:13:45

标签: wcf

我正在使用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。 任何建议都将受到高度赞赏。

0 个答案:

没有答案