如何在C#windows Application中以编程方式修改设置文件(app.config)的信息?

时间:2012-01-07 09:06:20

标签: c# .net winforms c#-4.0

我们正在开发基于C#windows的应用程序.net 4环境。在我的应用程序中,我想以编程方式更新设置文件(app.config)属性。实际上我们创建了一个用户界面(文本框)。因此,用户将输入新的文本框中的配置信息。单击“保存”按钮时,我想永久更新设置文件中的此值。

例如:

我的设置文件中有加密密钥。假设,用户可以使用该界面输入新的加密密钥,然后它会自动更新设置文件加密密钥值。

这可能吗?

4 个答案:

答案 0 :(得分:4)

首先,您必须添加此引用:System.Configuration,然后您可以使用以下代码写入app.config

        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

        ConfigurationSectionGroup applicationSectionGroup = config.GetSectionGroup("applicationSettings");
        ConfigurationSection applicationConfigSection = applicationSectionGroup.Sections["YourApp.Properties.Settings"];
        ClientSettingsSection clientSection = (ClientSettingsSection)applicationConfigSection;

        //Encryption Key Configuration Setting
        SettingElement applicationSetting = clientSection.Settings.Get("EncryptionKey");
        applicationSetting.Value.ValueXml.InnerXml = this.textBoxKey.Text.Trim();

        applicationConfigSection.SectionInformation.ForceSave = true;
        config.Save();

        ConfigurationManager.RefreshSection("applicationSettings");

请记住,您必须先使用Visual Studio向导创建app.config文件,在此示例中,我已调用加密密钥的字段:EncryptionKey以及表单中的相关文本框:{ {1}}。

答案 1 :(得分:1)

编辑app.config的最佳方法是创建一个安装项目。

安装项目将以Admin身份运行,并允许在程序文件文件夹中写入。不允许普通标准用户写入程序文件文件夹。

在设置过程中,您可以从用户那里收集有关应在配置文件中设置的值的信息,您可以搜索正确的文件夹。

请注意,如果您想更改每用户设置,则不会遇到此问题,因为用户设置是在用户的配置文件中写入的。

答案 2 :(得分:0)

您想在运行时编辑配置文件吗?这个有可能。使用System.Configuration程序集中的ConfigurationManager类(添加对它的引用)。你得到任何你喜欢的部分,例如app设置并修改它们。

答案 3 :(得分:0)

这可能会有所帮助

        Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
        AppSettingsSection appsettings = (AppSettingsSection)config.GetSection("appSettings");
        appsettings.Settings["Key"].Value = "value";
        config.Save(ConfigurationSaveMode.Modified);