WCF サービスに接続する MEF/Prism を使用する Silverlight クライアントがあります。アプリケーション全体で共有サービスとして使用する「サービス エージェント」を作成しています。この "サービス エージェント" は、クライアントが WCF サービスを呼び出す唯一の方法を提供するシングルトンです。私はサービス コントラクトを実装しました。すべてのメソッドは非常によく似ていますが、呼び出す特定の Begin/End 操作とそれらが受け入れる引数を除きます。
例えば:
public void WakeUpInstanceAsync(Foo opportunity, bool isHistorical, Action<WakeupObj> callback)
{
if (IsOpen())
{
AsyncCallback asyncCallback = (e) =>
{
_currentDispatcher.BeginInvoke(() =>
{
try
{
callback(_funnelClient.EndWakeUpInstance(e));
}
catch (CommunicationException ex1)
{
// Notify someone via eventaggregator?
callback(null);
}
});
};
_funnelClient.BeginWakeUpInstance(opportunity, isHistorical, asyncCallback, null);
}
}
2 つのパラメーター (「begin」メソッドと「end」メソッド) を取るジェネリック メソッドを作成する方法はありますか?