【问题标题】:How to store / access a global state object in Silverlight? (phone7)如何在 Silverlight 中存储/访问全局状态对象? (电话7)
【发布时间】:2010-09-29 00:58:43
【问题描述】:

我正在使用 Silverlight 在 Phone 7 上构建一个应用程序,并且需要在页面之间维护一些状态。我希望在 app.cs 中存储一个对象并从每个页面访问它,但我找不到任何有关如何执行此操作的文档。

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

感谢您的宝贵时间,

-- 亨利

【问题讨论】:

    标签: silverlight windows-phone-7


    【解决方案1】:

    回答了我自己的问题。我可以通过简单地访问 app.cs 中的对象:

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

    这是合理的做法吗?

    【讨论】:

    • 这对于中等复杂度的应用是合理的。
    • 如果您将对象存储为静态属性,则无需将 Application.Current 转换为 App,您应该可以直接访问 App.whateverMyObjectIsCalled。
    • 您应该小心跨线程访问此类对象,并确保锁定或使用 monitor.enter/exit 以避免竞争条件。您可能还会发现从某些非 UI 线程访问对象的问题。在这种情况下,您应该考虑在 UI 线程上执行此类访问。
    • 如果你在做任何单元测试,你也会遇到一些问题,因为你依赖静态对象来填充依赖关系。
    猜你喜欢
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    相关资源
    最近更新 更多