在Silverlight中处理Web服务“Get Something Id-like”方法的最佳实践

时间:2012-11-27 16:06:04

标签: web-services silverlight .net-4.0

处理源自多次调用的WebService方法的-Completed事件的最佳做法是什么,-Completed事件多次订阅。

This answer建议从事件args中识别结果(在此示例中使用e.Type,但也可以使用e.Result.Id或任何可以帮助识别所需内容的内容)。

另一方面,

This answer显示每次调用的客户端初始化。

最好做什么?

  • 从内容/附加信息中识别结果;
  • 使用多个客户端,每个事件服务员一个;
  • 别的什么?

问题是.NET 4.0及更新版本,但是如果你有一个适用于早期版本的“最佳实践”,并且仍然可行,请随时告诉。

2 个答案:

答案 0 :(得分:0)

我之前使用的一种方法是链接Web服务调用。因此,当第一次调用完成后,我从已完成的事件中注销,然后使用不同的回调方法注册到另一个或相同的等等...我知道这不是完美的方法,但延迟很小,不说缺席和它没有必要管理许多代理实例那么复杂。如果您需要并行执行调用,我们确实考虑过拥有多个客户端,这可能是最佳选择!

答案 1 :(得分:0)

根据您尝试执行的操作,您可能希望创建一个表示涉及Web服务的每个逻辑任务的类。为逻辑任务的每个实例创建该类的实例,并为该类事件提供。

每个事件的sender参数将是包装类的实例。然后,您可以使用一段代码处理每个此类逻辑线程的事件,“逻辑线程”将包含所有必需的状态。