我向Silverlight应用程序添加了服务引用。当我想调用的服务的方法我用这些行:Silverlight 4 - 调用WCF代理时异常处理逻辑重用
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();
}
的问题是,每次我需要调用一个方法,我复制此代码。我找不出一个优雅的方式来重用它(我可以使用继承并为每个方法创建一个新的类,但它非常难看)。
什么是常见的,每次有什么不同? – jv42 2011-05-10 12:59:00
如果代码示例在开始时有意义,它可能会有所帮助。你不能封装像try..catch块那样异步发生的超时错误。 – AnthonyWJones 2011-05-10 13:09:01
@ jv42什么是常见的一切,有什么不同是只有方法的名称和可能的参数对象 – 2011-05-10 17:05:21