【问题标题】:Edit app.config file and read settings编辑 app.config 文件并读取设置
【发布时间】:2018-04-07 14:27:19
【问题描述】:

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

不,我正在尝试这样做:

    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>

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

我应该怎么做才能从编辑的文件中读取设置?

【问题讨论】:

    标签: c# .net winforms app-config


    【解决方案1】:

    在您的 app.config 文件中写入的 UserSettings 应该通过在您的属性中添加一个条目来自动添加到其中。

    您可以像这样从您的属性中获取值:

    string value = Properties.Settings.Default.Type;


    编辑我:

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

    ConfigurationManager.RefreshSection(sectionName);
    

    或者你可以重新加载文件:

    Properties.Settings.Default.Reload();
    

    【讨论】:

    • 我知道如何获取和设置。但我需要在文件修改后得到它
    • 如果您在配置中进行了更改,您将获得新值。您只需要在可能的更新后获取值。例如。每次需要实际值时刷新属性。
    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 2017-04-22
    • 1970-01-01
    相关资源
    最近更新 更多