[英]Read Properties.Settings.Default from a different project
在我的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
並從View綁定設置,但是對於這種特殊情況,創建一個僅用於訪問設置的新ViewModel
聽起來有點過分。
感謝幫助!
感謝https://stackoverflow.com/a/632161/1729349
這是我訪問設置值的方式:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// find section
ClientSettingsSection configSection = config.SectionGroups[@"userSettings"].Sections["Tool.Properties.Settings"] as ClientSettingsSection;
var setting = configSection.Settings.Get("MySettingName").Value.ValueXml.InnerText;
AppSettings適用於“默認” appSettings配置部分。 您需要打開自己的配置部分。 嘗試這個:
ConfigurationManager.GetSection("userSettings");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.