我添加了一个Silverlight应用程序的服务引用。当我想在服务中调用一个方法时,我使用这些行:
CustomServiceClient proxy = new CustomServiceClient();
proxy.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(Proxy_GetDataCompleted);
try
{
proxy.GetDataAsync(appUser.Id);
proxy.CloseAsync();
}
catch (TimeoutException exception)
{
Console.WriteLine("Got {0}", exception.GetType());
proxy.Abort();
}
catch (CommunicationException exception)
{
Console.WriteLine("Got {0}", exception.GetType());
proxy.Abort();
}
问题是,每次我需要调用方法时,我都会复制此代码。我无法找到一种优雅的方式来重用它(我可以使用继承并为每个方法创建一个新类,但它非常难看。)