WPF configurationmanager.appsettings 集合为空
WPF configurationmanager.appsettings collection is empty
我有一个包含多个项目的 WPF 应用程序 (mvvm)。在主项目中,我有一个 App.config 文件。我通过 Settings.settings 添加了一些设置。 App.config 文件如下所示:
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="VSAutomation.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
<section name="log4net" type="log4net.config.Log4NetConfigurationSectionHandler, log4net" />
log4net stuff here...
<applicationSettings>
<VSAutomation.Properties.Settings>
<setting name="SimDir" serializeAs="String">
<value>"C:\Program Files (x86)\sim"</value>
</setting>
</VSAutomation.Properties.Settings>
</applicationSettings>
当我尝试从其他模块之一访问这些设置时
string appFolder = ConfigurationManager.AppSettings.Get("SimDir");
它returns 无效。如果我设置一个断点并计算
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
它指向正确的 appname.exe.config 文件并且设置正确。
ConfigurationManager.AppSettings.Count
returns 0
这真的很奇怪。我在这里 Whosebugflow 看了几十个问题,但没有找到解决方案。它与log4net
部分有关吗?
这是我的解决方案,以防其他人遇到这个特定版本的问题。我试图在 Visual Studio 中使用 Settings.settings UI。它创建了如上所示的结构。在仔细查看 this article 之后,我尝试创建一个 appSettings 部分并且成功了。
<appSettings>
<add key="SimDir" value="C:\Program Files (x86)\sim"/>
</appSettings>
所以现在
string appFolder = ConfigurationManager.AppSettings.Get("SimDir");
检索到正确的值。
我有一个包含多个项目的 WPF 应用程序 (mvvm)。在主项目中,我有一个 App.config 文件。我通过 Settings.settings 添加了一些设置。 App.config 文件如下所示:
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="VSAutomation.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
<section name="log4net" type="log4net.config.Log4NetConfigurationSectionHandler, log4net" />
log4net stuff here...
<applicationSettings>
<VSAutomation.Properties.Settings>
<setting name="SimDir" serializeAs="String">
<value>"C:\Program Files (x86)\sim"</value>
</setting>
</VSAutomation.Properties.Settings>
</applicationSettings>
当我尝试从其他模块之一访问这些设置时
string appFolder = ConfigurationManager.AppSettings.Get("SimDir");
它returns 无效。如果我设置一个断点并计算
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
它指向正确的 appname.exe.config 文件并且设置正确。
ConfigurationManager.AppSettings.Count
returns 0
这真的很奇怪。我在这里 Whosebugflow 看了几十个问题,但没有找到解决方案。它与log4net
部分有关吗?
这是我的解决方案,以防其他人遇到这个特定版本的问题。我试图在 Visual Studio 中使用 Settings.settings UI。它创建了如上所示的结构。在仔细查看 this article 之后,我尝试创建一个 appSettings 部分并且成功了。
<appSettings>
<add key="SimDir" value="C:\Program Files (x86)\sim"/>
</appSettings>
所以现在
string appFolder = ConfigurationManager.AppSettings.Get("SimDir");
检索到正确的值。