Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF捕获T类型或基本类型的故障异常_Wcf_Exception Handling - Fatal编程技术网

WCF捕获T类型或基本类型的故障异常

WCF捕获T类型或基本类型的故障异常,wcf,exception-handling,Wcf,Exception Handling,我们有一个带有WCF层的系统 WCF服务可以引发各种FaultException,这些异常类型为: FaultException<MyStronglyTypedException> 我可以捕获FaultException,但是我无权访问FaultException的Detail属性 我想了解的是: FaultException<MyBaseException> FaultException 但这似乎是不可能的 有没有一种方法可以在不捕获每个强类型异常的情况下访问Fa

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

WCF服务可以引发各种FaultException,这些异常类型为:

FaultException<MyStronglyTypedException>
我可以捕获FaultException,但是我无权访问FaultException的Detail属性

我想了解的是:

FaultException<MyBaseException>
FaultException
但这似乎是不可能的


有没有一种方法可以在不捕获每个强类型异常的情况下访问FaultException的Detail属性?

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

[ServiceContract]
interface IYourService
{
   [OperationContract]
   [FaultContract(typeof(MyBaseException))]
   ResponseType DoSomethingUsefulHere(RequestType request);
}
如果不“声明”要捕获强类型
FaultContract
异常的特定类型,WCF将把所有服务器端故障转换为通用
FaultContract
实例。

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