编辑app.config文件并读取设置

时间:2017-10-26 09:17:46

标签: c# .net winforms app-config

我有一个app.config文件。 我有设置。 我想在构建后修改设置,然后从文件中读取它。 我的意思是我想通过edeting文件来更改设置。 我知道如何更改程序设置但我需要通过编辑文件。

不,我没有尝试这样做:

    private void ReadSettings()
    {
        string appPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
        string settingsPath = Path.Combine(appPath, "app.config");
        ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
        configFileMap.ExeConfigFilename = settingsPath;
        System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
        string value=config.AppSettings.Settings["Type"].Value;
    }

我的设置:

<?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="RxTest.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <userSettings>
        <MyApp.Properties.Settings>
            <setting name="Type" serializeAs="String">
                <value>document</value>
            </setting>
        </RxTest.Properties.Settings>
    </userSettings>
</configuration>

问题是“设置”属性中没有任何内容。

我从edeted文件中读取设置是做什么的?

1 个答案:

答案 0 :(得分:0)

通过在属性中添加条目,应该会自动将app.config文件中写入的UserSettings添加到其中。

您可以通过以下方式获取属性中的值:

string value = Properties.Settings.Default.Type;

编辑I:

为了确保您始终拥有最新鲜的价值,您可以refresh a section

ConfigurationManager.RefreshSection(sectionName);

或者您可以自动加载文件:

Properties.Settings.Default.Reload();