4

我有一个 Silverlight 应用程序,它总是需要知道当前加载了什么客户(域对象)。一次只能加载一个。如果 Customer 为 null,则当前没有加载 Customer。或者您退出了客户。我将拥有另外 3 个状态类型的属性,例如 Customer。所以...

在 Silverlight 应用程序中存储应用程序状态的最佳方式是什么?

1) 将公共属性添加到 App 类 (App.xaml.cs)
2) 有一个状态对象,您可以通过您的 IoC 容器将其新建为单例。向该对象添加公共属性 3)还有其他想法吗?

4

3 回答 3

1

我会选择第二种选择。

目前正在开发存储域对象状态数据的 Silverlight 应用程序。

我们有所谓的 ApplicationManager,它通过 IoC 解析以存储参考数据和域数据。可能有比 ApplicationManager 更好的术语,但迄今为止还没有找到标准的命名约定。

这个概念很有效,我们所有的视图模型都可以访问 ApplicationManager,所以当应用程序的另一部分需要采取行动时,我们传递的只是实体 ID。

如果您有更新数据的异步操作,则需要注意保持 UI 和数据存储一致

于 2010-11-09T21:23:45.270 回答
1

我的投票将支持您的第二个选项,即拥有一个状态对象单例。如果您使用的是 MVVM 和 Silverlight Toolkit,那么您将在 MainViewModel 中内置一个,它是静态的,并且在 ViewModelLocator 中静态初始化。那将是实现您想要的结果的理想场所。

于 2010-11-09T21:06:46.810 回答
1

我有一个类似的问题。当我使用 MEF 时,我创建了一个保存数据的服务。您可以在需要的地方导入服务并访问引用的对象。(所以它类似于2)

于 2010-11-09T22:11:40.580 回答