我有一个用C#编写的控制台应用程序,它使用一个app.config文件。这个应用程序旨在在服务器上使用任务计划程序运行。现在我想开发一个UI,从app.config读取和写入数据。(注意,这个配置不打算替换UI应用程序的配置文件。)
但是我无法从文件中读取设置。使用ConfigurationManager我能够打开配置文件,但是我无法访问配置设置。
这是Visual Studio(2010)生成的示例配置文件:
但是我无法从文件中读取设置。使用ConfigurationManager我能够打开配置文件,但是我无法访问配置设置。
这是Visual Studio(2010)生成的示例配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="AccessingConfigSample.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<AccessingConfigSample.Properties.Settings>
<setting name="ApplicationTitle" serializeAs="String">
<value>Accessing Config files</value>
</setting>
<setting name="VersionNo" serializeAs="String">
<value>V 1.0</value>
</setting>
</AccessingConfigSample.Properties.Settings>
</userSettings>
</configuration>
在查阅了几篇stackoverflow文章后,我尝试使用以下方法打开文件并访问用户部分:
if (File.Exists(configFile))
{
var configMap = new ExeConfigurationFileMap{ ExeConfigFilename = configFile};
var config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
var userSection = config.GetSection("userSettings");
}
我也尝试过这个:
var userSection = config.GetSection("AccessingConfigSample.Properties.Settings");
两者都返回null。
那么我在这里做错了什么呢?
非常感谢任何帮助或提示!
config.GetSectionGroup("userSettings")["AccessingConfigSample.Properties.Settings"]
。 - Jeroen Mostert