waesaeasea 2017-12-02 02:43 采纳率: 0%
浏览 2654
已采纳

c# APP.config的读取保存配置问题

public Form1()
{
InitializeComponent();
config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
}
public void AddAppSetting(string key, string value)
{
config.AppSettings.Settings.Add(key, value);
config.Save();
}

    /// <summary>  
    /// //修改键值  
    /// </summary>  
    /// <param name="key"></param>  
    /// <param name="value"></param>  
    public void SaveAppSetting(string key, string value)
    {
        config.AppSettings.Settings.Remove(key);
        config.AppSettings.Settings.Add(key, value);

        config.Save();
    }

    /// <summary>  
    /// //获得键值  
    /// </summary>  
    /// <param name="key"></param>  
    /// <returns></returns>  
    public void GetAppSetting()
    {
        //return config.AppSettings.Settings[key].Value;
        String str = ConfigurationManager.AppSettings["Text1"];
        Console.WriteLine(str);
        textBox1.Text = str;
    }

    /// <summary>  
    /// //移除键值  
    /// </summary>  
    /// <param name="key"></param>  
    public void DelAppSetting(string key)
    {
        config.AppSettings.Settings.Remove(key);
        config.Save();
    }

    public void initdata()
    {
        string nb1 = "Text1";

    }



    public ArrayList GetXmlElements(string strElem)
    {
        ArrayList list = new ArrayList();
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");
        XmlNodeList listNode = xmlDoc.SelectNodes(strElem);
        foreach (XmlElement el in listNode)
        {
            list.Add(el.InnerText);
        }
        return list;
    }
    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void button2_Click(object sender, EventArgs e)
    {
        AddAppSetting("waeawe","1");
    }

    private void button1_Click(object sender, EventArgs e)
    {
        GetAppSetting();
    }

    private void button3_Click(object sender, EventArgs e)
    {
        SaveAppSetting("Text1", "46546");
    }

代码中button1读取配置。button修改配置,第一次点击Button1的时候可以正常读取配置,点击button2以后修改值。再点button1不能读取修改后的值,只能读取修改之前的值。程序关闭以后才能读取为什么?

  • 写回答

2条回答 默认 最新

  • 战在春秋 2017-12-02 06:21
    关注

    在读取前请先使用:

     ConfigurationManager.RefreshSection("appSettings");
    

    刷新值,该函数具体用法请参考:

    https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.refreshsection(v=vs.110).aspx

    如果对您有帮助,请点击采纳答案好吗,谢谢~~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 10月22日

悬赏问题

  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答