如何在Silverlight中创建客户端帮助程序类?

时间:2010-01-08 22:20:29

标签: c# .net wcf silverlight

在Silverlight中,我异步调用启用Silverlight的WCF服务来检索组合框的值列表。在服务器上,我缓存这些值以获得性能。但我想在客户端缓存它们以防止不必要的往返。

现在,我理解如何使用本地存储来缓存它们,除了我不希望所有的“如果在本地存储中,返回本地存储值,否则从异步服务器获取值”的东西在我的xaml应用程序的代码隐藏中。<登记/>
所以,我尝试将该代码移动到辅助类,但异步调用需要回调,这是我迷失的地方。我尝试将一个通用的EventHandler传递给我的帮助器类,但是辅助类方法确实需要是静态的。所以,这让我失望了。我的帮助方法是否需要是非静态的,如果是这样,我是否需要担心线程安全? Aaarh!太多问题!哈哈。无论如何,我打赌那里一些聪明的人可以告诉我一个更好的方法来接近这个!提前谢谢。

1 个答案:

答案 0 :(得分:3)

我过去做过一个主要的Silverlight应用程序。它告诉我你不应该反对这个系统。

如果我没弄错的话,Silverlight本身会使用浏览器网络层连接到互联网。因此,您仍然可以利用 - 并且Silverlight仍然尊重 - 具有适当缓存控制标头等的东西。

因此,根据我的经验,我建议您尝试使服务器组件(WCF服务器)在Silverlight中实现适当的输出缓存 ala ASP.NET样式和网络层托管浏览器将自动为您处理缓存。

您可以通过 RESTful WCF 模式获得更好的运气,因为您可以在整个过程中利用正确的HTTP缓存,请参阅此博客文章: REST in WCF – Part X – Supporting Caching and Conditional GET 作为开始。< / p>

这也使您的代码变得不那么复杂,因为您不必向系统添加另一个复杂的层,并将其命名为使用混乱的XAML绑定系统。