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日

悬赏问题

  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图