每个应用程序都包含一些可配置的设置。这些设置或多或少可以分为两类:
在我实现的架构中,View 有自己的项目(WPF),ViewModel 有自己的项目(类库)。从专业角度来看,View应该负责加载/保存视图相关设置,ViewModel应该负责加载/保存业务设置。
视图设置很容易处理。在设置(app.config)中创建所需的属性,您可以轻松加载保存它们。
但是,ViewModel 无法通过 View 项目中可用的内置机制访问 app.config 设置。
我的第一个想法是创建一些辅助方法,允许我从 ViewModel 读取/写入 app.config 中的设置。你有什么意见?我是否使事情变得复杂,或者这是处理应用程序设置的可接受的方式?
您可以通过三种方式到达这里。
添加对 System.Configuration.dll 的引用,并使您的 ViewModel 项目正常使用ConfigurationManager。
让 ViewModel 项目通过构造函数或其他依赖倒置方法请求所需的配置信息,并让 View 项目将其传入。
将 ViewModel 和 View 放入主应用程序项目中。
就我个人而言,我会选择选项 3,除非出于某种原因它们需要位于单独的程序集中。如果它们需要分开,那么我会倾向于选项 1,因为它更简单。