【问题标题】:WCF catching Fault Exceptions of type T or Base typeWCF 捕获类型 T 或基本类型的故障异常
【发布时间】:2011-01-14 07:40:04
【问题描述】:

我们有一个带有 WCF 层的系统。

WCF 服务可以抛出各种 FaultExceptions,这些是异常类型:

FaultException<MyStronglyTypedException>

所有强类型异常都继承自基本异常。

public class MyStronglyTypedException : MyBaseException

我可以捕获 FaultException,但是我无法访问 FaultException 的 Detail 属性。

我想了解的是:

FaultException<MyBaseException>

但这似乎是不可能的。

有没有一种方法可以访问 FaultException 的 Detail 属性,而无需捕获每个单独的强类型异常?

【问题讨论】:

标签: wcf exception-handling


【解决方案1】:

如果您希望能够在客户端代码中捕获强类型 FaultException&lt;MyBaseException&gt;,则必须使用该类型的 FaultContract 属性装饰您的服务方法:

[ServiceContract]
interface IYourService
{
   [OperationContract]
   [FaultContract(typeof(MyBaseException))]
   ResponseType DoSomethingUsefulHere(RequestType request);
}

如果您不“声明”那些您想要为其捕获强类型 FaultContract&lt;T&gt; 异常的特定类型,WCF 会将所有服务器端错误转换为通用 FaultContract 实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2015-11-17
    • 2018-01-04
    • 1970-01-01
    相关资源
    最近更新 更多