【问题标题】:WPF configurationmanager.appsettings collection is emptyWPF configurationmanager.appsettings 集合为空
【发布时间】:2018-04-09 14:13:31
【问题描述】:

我有一个包含多个项目的 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");

它返回空值。如果我设置断点并评估

AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

它指向正确的appname.exe.config文件并且设置正确。

ConfigurationManager.AppSettings.Count 返回0

这真的很奇怪。我在 StackOverflowflow 上查看了几十个问题,但没有找到解决方案。是否与log4net 部分有关?

【问题讨论】:

  • stackoverflow.com/questions/2101273/… 你应该可以通过输入VSAutomation.Properties.Settings.SimDir来访问它
  • 我试过了,但我得到一个编译器错误,说当前上下文中不存在 VSAutomation。我正在尝试从解决方案中的另一个项目(mvvm 模块)访问这些设置。我已经有一个从启动项目到这个项目的引用,所以我不能从这个项目添加一个对启动项目的引用。

标签: c# wpf configurationmanager


【解决方案1】:

这是我的解决方案,以防万一其他人遇到此特定版本的问题。我试图在 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");

检索正确的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-03
    • 2017-08-15
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 2012-08-02
    相关资源
    最近更新 更多