Shi*_*iji 6 wcf exception-handling
我们有一个带有WCF层的系统.
WCF服务可以抛出各种FaultExceptions,这些是类型的例外:
FaultException<MyStronglyTypedException>
Run Code Online (Sandbox Code Playgroud)
所有强类型异常都从基本异常继承.
public class MyStronglyTypedException : MyBaseException
Run Code Online (Sandbox Code Playgroud)
我可以捕获FaultException,但是我无法访问FaultException的Detail属性.
我想要抓住的是:
FaultException<MyBaseException>
Run Code Online (Sandbox Code Playgroud)
但这似乎不可能.
有没有办法可以访问FaultException的Detail属性,而不会捕获每个强类型的异常?
如果您希望能够捕获FaultException<MyBaseException>客户端代码中的强类型,则必须使用该类型的FaultContract属性修饰服务方法:
[ServiceContract]
interface IYourService
{
[OperationContract]
[FaultContract(typeof(MyBaseException))]
ResponseType DoSomethingUsefulHere(RequestType request);
}
Run Code Online (Sandbox Code Playgroud)
如果您没有"声明"那些要捕获强类型FaultContract<T>异常的特定类型,WCF会将所有服务器端错误转换为通用FaultContract实例.
| 归档时间: |
|
| 查看次数: |
2916 次 |
| 最近记录: |