在我们的应用程序中,所有数据合约都有一个父级 -OperationResponse
它OperationResponse
包含枚举(OperationState
属性中的枚举类型Result
),它代表调用结果(Ok、InvalidParams、Error)。
如何在异常后覆盖 WCF 行为 - 不返回故障状态,但返回经典消息 OperationResponse 在我的情况下,但属性 Result = OperationState.Error?
编辑:我想,我走对了,我需要实现 IErrorHandler,但现在我迷路了,因为我不知道如何将错误消息设置为传出的错误消息......
public bool HandleError(Exception error)
{
// log error
return true; // we catch error and provide our custom message.
}
public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
{
// create result message
var message = new OperationResponse
{
Result = OperationState.Error
};
// ok how to return message into ref fault?
}
Edit2:似乎没有解决方案是牢不可破的问题......我只发现没有像这个线程这样的解决方案的相同问题...... :(