c# - 如何在 *config 文件中保存键的值

标签 c# .net windows config

尝试将一些用户定义值存储并读取到 *.config 文件 读取文件代码

public int GetVolumeFromConfigFile()
    {
        return  Convert.ToInt32(ConfigurationManager.AppSettings["Volume"]);         
    }

完美运行

尝试用这个更新现有的 key

   public int SetVolumeFromConfigFile()
    {
       ConfigurationManager.AppSettings["Volume"] = "10";         
    }

出现错误 - 文件仅供阅读,更改为如下内容:

Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
        config.AppSettings.Settings.Add(label.Text.ToString(), box.Value.ToString());
        config.Save(ConfigurationSaveMode.Minimal);

没有错误,但文件没有任何变化。

我的 *.config 文件是:

<?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="PlayDemo.SettingsPlayIt" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    </sectionGroup>
</configSections>
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<userSettings>
    <PlayDemo.SettingsPlayIt>
        <setting name="Volume" serializeAs="String">

        </setting>
    </PlayDemo.SettingsPlayIt>
</userSettings>

试着理解我哪里错了

最佳答案

在这里

Configuration config = ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
config.AppSettings.Settings["Volume"].Value = "10";
config.Save(ConfigurationSaveMode.Modified);

这不会更新您在 Visual Studio 中的项目中的 App.config,而是更新您项目的 bin 文件夹中的“ExecutableName”.config。

关于c# - 如何在 *config 文件中保存键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18879031/

相关文章:

c# - 使用 Gremlin 遍历节点但在 Neo4J 的结果中包含起始节点

c# - 在 XAML ResourceDictionary 中绑定(bind)

c# - ListItemCollection 的 ForEach 扩展方法

windows - 有没有办法从 VB.NET 控制第三方 EXE 文件?

c - 在 win32/C/C++ 中共享内存和 IPC 的最快进程技术

c# - 如何从c#代码中调用java中的方法?

c# - 使用 View 的 MySQL 数据库报告

c# - Google 带注释的时间线组件的桌面版?

c# - 如何验证在最小起订量中未调用该方法?

c - Win32 API 命令行参数解析