首页 新闻 会员 周边

WCF全局异常处理问题

0
悬赏园豆:10 [已解决问题] 解决于 2016-03-22 15:42

  

  [ServiceContract]

  publicinterface IMyService

    {

        [OperationContract]       

   Response Create(Request request);

 

        [OperationContract]  

    Response Update(Request request);

     }

1、上面是服务接口
2、我想采用全局异常处理 ,并在异常处理后返回一个response对象,而不是返回FaultException

weizhangxiaohan的主页 weizhangxiaohan | 初学一级 | 园豆:95
提问于:2016-03-22 10:29
< >
分享
最佳答案
0

Response ExecuteInternal(Func<Request,Response> func,Request request)

{

  try

{

return func(request);

  }

catch(Exception ex)

{

 //...build your response

}

}

收获园豆:10
Daniel Cai | 专家六级 |园豆:10424 | 2016-03-22 11:29

这个方法放哪里  服务怎么进这个方法

weizhangxiaohan | 园豆:95 (初学一级) | 2016-03-22 13:54

@weizhangxiaohan: 

public class MyServiceImpl:IMyService
{
   public Response Update(Request request)
  {
   return ExecuteInternal(req=>
    { 
       //your logic here
    },request);
  }   
}
Daniel Cai | 园豆:10424 (专家六级) | 2016-03-22 14:04

@Daniel Cai: 好像是可以 ,但是所有服务方法的签名要一致 ,我还有一些服务方法签名有点差别

weizhangxiaohan | 园豆:95 (初学一级) | 2016-03-22 14:12

@weizhangxiaohan: ExecuteInternal<T,V>(Func<T,V> func,T request) where V:IResponse

...

interface IResponse

{

 public IResponse BuildErrorResponse(Exception ex);

}

Daniel Cai | 园豆:10424 (专家六级) | 2016-03-22 15:39

@Daniel Cai:  我试下, 谢谢

weizhangxiaohan | 园豆:95 (初学一级) | 2016-03-22 15:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册