我正在为 WCF 服务准备一个客户端。我在服务站点的某些方法中引发了故障异常。我是说:
throw new FaultException<sth>(new sth())
当我在 WPF 应用程序中捕获此异常时:
catch (FaultException<sth> ex)
{
// something
}
一切都很清楚。
我的观点是,我对服务接口进行了反思。
var type = typeof (someServiceInterface);
type.GetMethods();
当我以这种方式调用方法服务时,我想捕获 FaultException
try
{
var singleMethod = //do sth to get method
var result = singleMethod.Invoke(proxy, parameters);
return result;
}
catch (FaultException<sth> ex)
{
//1
}
catch (Exception ex)
{
//2
}
但是我在第二次捕获中捕获了一个异常,而不是在第一次捕获中。此异常的类型是“System.Reflection.TargetInvocationException”。我很困惑,我想知道是什么导致了这种问题。