如何在全球范围内存储某些对象?

时间:2009-05-07 21:57:23

标签: wpf

我是WPF的新手并且习惯于ASP.NET。我有一个需要登录屏幕的WPF应用程序。通过应用程序的其余部分,我希望能够访问包含一些凭据信息的“会话”对象。如何存储,以便我的应用程序中的任何视图都可以访问该对象?

3 个答案:

答案 0 :(得分:1)

Application对象有一个Properties属性,允许您存储和检索应用程序范围的对象。

这里有更好的解释: How to: Get and Set Application-Scope Properties

答案 1 :(得分:1)

有几种方法可以做到这一点。

  1. 您可以创建一个静态类,也许您可​​以将其称为“Session”,其中包含您感兴趣的数据.Assse可能包含一个包含您感兴趣的数据的Dictionary。

  2. 您可以在主窗体中保存数据,并让主窗体将数据容器传递给每个视图。

  3. 如果您可以提供有关实施和用例的更多详细信息,可能有更好的方法可以更好地兼容您的设计目标。

答案 2 :(得分:1)

您还可以使用轻量级容器以松散耦合的方式全局存储对象,并使用依赖注入模式检索这些对象。

轻量级容器的一个实现是来自Microsoft的Unity应用程序块(http://www.codeplex.com/unity),因此您可以从那里开始阅读更多herehere