我有一个使用连接到 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 个参数的通用方法(“开始”方法和“结束”方法)?