如何在WCF服务中设置默认的FaultContract属性

3

有没有一种方法可以为WCF服务类中的所有方法设置“默认”故障合同?

[ServiceContract]
[DefaultFaultContract(typof(MyServiceFault))]
class MyService
{
    [OperationContract]
    void DoWork();
}

改为:

[ServiceContract]
public interface ICustomerService
{
    [OperationContract]
    [FaultContract(typeof(ServiceFault))]
    void DoWork();
}

我需要一份“逐步指南”的链接。

1个回答

0

这可能不是“正确”的方法,但我刚刚在另一个问题上发布了一个答案

这段代码可能对你有用

它构建了一个代理,捕获调用实现特定接口的对象成员时发生的每个异常。您可以在wpf通道上使用它。

IMyInterface myService = [...];
IMyInterface myExceptionLoggedService = ExceptionProxyGenerator.Generate<IMyInterface>(myService);
(myExceptionLoggedService  as IExceptionProxy).Error+=(sender,method,exception)=>{
   // do what you want on exception
};
// Use my service :
myExceptionLoggedService.MyOkFunction();// ok
myExceptionLoggedService.MyExceptionFunction();// calling the above delegate

你可以稍微重写一下这个类,以获得你想要的行为方式(例如在出错时不重新抛出异常并返回 null - 如果函数不返回 void 的话)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接