none
WPF程序中如何保存用户的配置信息啊? RRS feed

  • 问题

  • 代码:

                Configuration conf = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                KeyValueConfigurationElement kv = conf.AppSettings.Settings["Test"];
                if (kv == null)
                    conf.AppSettings.Settings.Add("Test", "newvalue");
                else
                    kv.Value = "newvalue";
                conf.Save();

    程序运行没报错,可是app.config文件根本没任何变化;再次运行程序,发现

    KeyValueConfigurationElement kv = conf.AppSettings.Settings["Test"];

    还是返回null,就好像之前根本没保存到一样,为什么?

    • 已编辑 liubin 2017年8月22日 9:23
    2017年8月22日 9:21

全部回复

  • 用户配置不推荐这种方式,直接用VS项目属性选项卡中的资源,可以这样Using Settings in C#

    https://msdn.microsoft.com/en-us/library/aa730869%28v=vs.80%29.aspx?f=255&MSPPError=-2147217396

    http://www.cnblogs.com/ZetaChow/archive/2011/11/03/2234688.html


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年8月23日 0:39
  • Hi,

    你应该查看Debug或者Release文件夹下的配置文件,而不是项目中的文件。

    Best Regards,

    Bob


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年8月23日 4:56
    版主
  • AppSetting可是WPF项目默认自带的啊,你说不建议,是谁的建议啊?


    da jia hao!

    2017年8月23日 7:58
  • 你好,

    问题解决了吗?

    你的代码在我这边可以运行,如果还没有解决,我建议你保证以下两点:

    1. 在App.config文件中添加<appSettings>子节点。

    2. Clear Solution并重新编译项目。

    下面是我的代码:

      public static void SetAppSetting(string key,string value)
            {
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                if (config.AppSettings.Settings[key].Value != null)
                    config.AppSettings.Settings[key].Value = value;
                else
                    config.AppSettings.Settings.Add(key,value);
                config.Save();
            }

    Best Regards,

    Bob


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年8月24日 2:11
    版主