【发布时间】:2015-06-28 16:07:36
【问题描述】:
在我的WPF MVVM 应用程序中,我将Model、View 和ViewModel 作为单独的项目。现在,在我的View 应用程序中,我在Settings.settings 文件中定义了用户设置,我可以通过以下方式访问它们:
Properties.Settings.Default.MySettingName
在我的 Tool.exe.xml 中,我可以确认设置存在:
<userSettings>
<Tool.Properties.Settings>
<setting name="MySettingName" serializeAs="String">
<value>False</value>
</setting>
</Tool.Properties.Settings>
</userSettings>
现在的问题是如何从我的 ViewModel 项目中访问这些设置?
很明显,如果我要做Properties.Settings.Default.*,它将指向它自己的设置。
到目前为止,我尝试了以下两种方式:
Configuration configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationCollection settings = configFile.AppSettings.Settings;
和
var keys = ConfigurationManager.AppSettings.AllKeys;
但是它们都总是返回 0 个实体。
我也知道我可以创建一个ViewModel 并从视图绑定设置,但对于这种特殊情况,创建一个新的ViewModel 只是为了访问设置听起来有点矫枉过正。
感谢您的帮助!
【问题讨论】:
-
如果您使用的是 Visual Studio,您可以将设置类的访问修饰符更改为公共。双击 Settings.settings 文件,顶部有一个下拉菜单。然后,您可以使用完整的命名空间访问设置
-
更好的方法是提供使用
SettingsBase包装设置的服务 -
你能提供更多关于服务的细节吗?
标签: c# .net wpf configuration settings