今、私はすべてのWCFサービス呼び出しを次のtry/catchブロックでラッピングしています。これを1か所に設定してすべてのサービス呼び出しに適用する方法があるのだろうかと思います。クライアント上の1つの場所でWCFサーバーの障害を処理する方法はありますか?
try
{
Product test = client.GetProductById(1);
}
catch (TimeoutException ex)
{
WPFMessageBox.Show("The service operation timed out." + ex.Message);
}
catch (FaultException<CustomFault> ex)
{
WPFMessageBox.Show("CustomFault:" + ex.ToString());
}
catch (FaultException ex)
{
WPFMessageBox.Show("Unknown Fault:" + ex.ToString());
}
catch (CommunicationException ex)
{
WPFMessageBox.Show("There was a communication problem" + ex.Message +
ex.StackTrace);
}
ありがとう、それは素敵でシンプルです。 – Rachel
Jan、このラッパーは、1つ以上のパラメーターを受け入れるが値を返さないメソッドをどのように探すか? (例えば、voidです。)(例:内部静的void LockoutUser(string userID、int timeInSeconds)) – FarrEver
@FarrEver、交換FuncメソッドのServiceCallWrapperでのアクション: 'public void ServiceCallWrapper(Action serviceCallDelegate)' –
Jan