我正在考虑 Windsor 方面的方面或拦截器,它可以捕获从 Web 服务抛出的已知异常并将其重新包装在FaultException<T>
.
假设有合同
[ServiceContract]
public interface IMyContract
{
[OperationContract]
[FaultContract(typeof(MyException))]
void DoSome();
}
绑定到实现类的拦截器将FaultContractAttribute
在操作上定义并在它捕获时DoSome
重新抛出。FaultException<MyException>
MyException
这有任何意义吗?有什么注意事项吗?
您能否建议一个可以识别它何时在 WCF 上下文中执行并在这种情况下执行的实现。当不作为 WCF 服务执行时(例如,在单元测试中),这将重新引发所有异常。