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
}
しかし、最初のキャッチではなく、2 番目のキャッチで例外をキャッチします。この例外のタイプは「System.Reflection.TargetInvocationException」です。私は混乱していて、何がそのような問題を引き起こしているのだろうか。