我有一个带登录屏幕的应用程序,我猜是相当典型的场景。用户通过身份验证后,我需要以某种方式存储他,因为我必须根据他的权限等行事。当然还会有更多的属性存储..
什么是best
实现此目的的方式?我目前正在评估两个选项:
1。)使用单例(或静态属性)并在我的viewmodels
中引用它 2。)使用App.Current.Properties
并将其存储在那里。然后可以使用一些静态辅助方法在整个应用程序中更轻松,更一致地检索用户
或者可能还有其他选择吗?谢谢你的建议。
答案 0 :(得分:2)
将MEF和[导入]经过身份验证的用户界面用于视图模型。这样,您可以为对象和框架提供全局资源,而不是代码负责管理资源。这引入了比您建议的解决方案更少的耦合,这些优势将有助于单元测试。
Prism framework for Silverlight基于MEF,应该适用于WPF。
MEF是依赖注入。通过将所需接口映射到具体类的实例,您可以为MEF负责解决依赖关系。您可以使用设置和检索标识的方法创建IAuthenticatedUser接口。您创建一个实现接口的模型类并将其导出到MEF。您的登录ViewModel和任何其他需要身份的ViewModel导入该接口。 MEF在创建实现类时将视图模型连接到实现类的实例。您的ViewModel根据需要使用该接口。