我有很多WCF调用,我希望它们周围有try
catch
。我没有复制try
catch
的同一块,而是委托函数调用。
这是我的示例原始功能(缩减);
public DTO_Echo_Response SendEcho(DTO_Echo_Request request)
{
try
{
return Proxy.SendEcho(request);
}
catch (System.ServiceModel.CommunicationException)
{
throw new Communication_Error("Communication Error");
}
}
我想要以下内容:
public DTO_Echo_Response SendEcho(DTO_Echo_Request request)
{
// invoke Process(Proxy.SendEcho(request));
}
public _DTO_BaseResponse Process(Func myFunction)
{
try
{
return myFunction();
}
catch (System.ServiceModel.CommunicationException)
{
throw new Communication_Error("Communication Error");
}
}
我访问过很多文章,并尝试了很多不同的东西。
谢谢
答案 0 :(得分:3)
你非常接近。试试这个:
public DTO_Echo_Response SendEcho(DTO_Echo_Request request)
{
return Process(() => Proxy.SendEcho(request));
}
public TResult Process<TResult>(Func<TResult> myFunction)
{
try
{
return myFunction();
}
catch (System.ServiceModel.CommunicationException)
{
throw new Communication_Error("Communication Error");
}
}