MVVM架构中的App.Config

Gor*_*ran 5 wpf mvvm

每个应用程序都包含一些可配置的设置。这些设置或多或少可以分为两类:

  1. 应用程序的外观:示例可以是窗口位置、窗口大小、视图上的默认选项等。
  2. 业务规则:这些设置将由业务逻辑使用。

在我实现的架构中,View 有自己的项目(WPF),ViewModel 有自己的项目(类库)。从专业角度来看,View应该负责加载/保存视图相关设置,ViewModel应该负责加载/保存业务设置。

视图设置很容易处理。在设置(app.config)中创建所需的属性,您可以轻松加载保存它们。

但是,ViewModel 无法通过 View 项目中可用的内置机制访问 app.config 设置。

我的第一个想法是创建一些辅助方法,允许我从 ViewModel 读取/写入 app.config 中的设置。你有什么意见?我是否使事情变得复杂,或者这是处理应用程序设置的可接受的方式?

def*_*mer 3

您可以通过三种方式到达这里。

  1. 添加对 System.Configuration.dll 的引用,并使您的 ViewModel 项目正常使用ConfigurationManager

  2. 让 ViewModel 项目通过构造函数或其他依赖倒置方法请求所需的配置信息,并让 View 项目将其传入。

  3. 将 ViewModel 和 View 放入主应用程序项目中。

就我个人而言,我会选择选项 3,除非出于某种原因它们需要位于单独的程序集中。如果它们需要分开,那么我会倾向于选项 1,因为它更简单。