如何在Silverlight中存储/访问全局状态对象?(电话7)

如何在Silverlight中存储/访问全局状态对象?(电话7),silverlight,windows-phone-7,Silverlight,Windows Phone 7,我正在使用Silverlight在Phone 7上构建一个应用程序,需要在页面之间保持一些状态。我希望在app.cs中存储一个对象,并从每个页面访问它,但我还没有找到任何关于如何做到这一点的文档 在多个不同页面之间访问同一对象的最佳方式是什么 谢谢你抽出时间 --亨利回答了我自己的问题。我只需执行以下操作即可访问app.cs中的对象: App app = (App)Application.Current; app.whateverMyObjectIsCalled 这样做合理吗 这对于中等复杂度

我正在使用Silverlight在Phone 7上构建一个应用程序,需要在页面之间保持一些状态。我希望在app.cs中存储一个对象,并从每个页面访问它,但我还没有找到任何关于如何做到这一点的文档

在多个不同页面之间访问同一对象的最佳方式是什么

谢谢你抽出时间


--亨利回答了我自己的问题。我只需执行以下操作即可访问app.cs中的对象:

App app = (App)Application.Current;
app.whateverMyObjectIsCalled

这样做合理吗

这对于中等复杂度的应用程序来说是合理的。如果将对象存储为静态属性,则不需要将Application.Current强制转换为App,您应该能够直接访问App.whatevermyObjectScaled。您应该注意对此类对象的跨线程访问,并确保锁定或使用monitor.enter/exit以避免竞争条件。您还可能发现从一些非UI线程访问对象时出现问题。在这种情况下,您应该在UI线程上执行这样的访问。如果您正在进行单元测试,您也会遇到一些问题,因为您依赖静态对象来填充依赖关系。