据我所知用System.Configuration.AppSettingsReader始终会得到修改前的,所以我以前用的自定义方法(从codeproject下载的,好像叫ami什么来着)获取配置文件信息。

解决方案 »

  1.   

    Config信息是程序启动一次加载进行缓存,以后都不加载的,
      

  2.   

    有读取和写入XML文件的示例代码吗?
    不要复杂的,只要基本的就可以了
      

  3.   

    用xml做config;XmlTextReader r=new XmlTextReader(路进);
    XmlDocument doc=new XmlDocument();
    doc.Load(reader)lXmlNode n=doc.SelectSingleNode("descendant::/config/configname");
      

  4.   

    最后一步 return n.InnerText
      

  5.   

    使用System.Configuration.ConfigurationSettings.AppSettings["youkey"]来读取,返回是一个字符窜,更新了文件立刻生效,不需要重启。
      

  6.   

    Config信息是程序启动一次加载进行缓存,以后都不加载的,所以可以考虑用XML等进行存储
      

  7.   

    我以前也碰到过这样的需求,我是在改变Config文件的同时,将更改项目记录到一个hashtable中,我每次读取数据时都先从hashtable中读如果没有再利用net的读config的方法读内存中的设置.
      

  8.   

    我是在改变Config文件的同时,将更改项目记录到一个hashtable中
    ----------------------------
    是不是在修改config并保存完之后将新的config放到内存? 请问怎么去实现这个功能?
      

  9.   

    使用Hashtable纪录你的变更项,然后读取Hashtable的项,Hashtable是微软.net提供的功能非常强大的内存表工具,好好利用可以解决很多问题,并提高速度
      

  10.   

    建议你能够看看msdn的Hashtable的描述,记住msdn是最好的工具和帮助
      

  11.   

    我是在改变Config文件的同时,将更改项目记录到一个hashtable中
    ----------------------------
    是不是在修改config并保存完之后将新的config放到内存? 请问怎么去实现这个功能?
    -----------------------------
    不需要将所有的config内容都放入hashtable中,只需要放入你改动过的设置,或是新添加的设置,可以放置浪费效率!
    实现方法,构造一个静态的hashtable,当需要更改设置时,同时添加到hashtable中,注意在读取时要先读hashtable.如果hashtable中没有才读config,hashtable的查找和读取效率是很高的,你几乎是不用考虑其时间消耗,这样一来就可以不影响你程序整体效率
      

  12.   

    我程序是这样的,启动时读取config文件中的一些参数,确定服务器的位置,然后从服务器上检查是否有更新的config文件,如果有的话就把服务器上的config文件复制到本机并覆盖原先的config文件,然后程序继续读取config文件中的内容进行下一步的设置。
    由于config文件是复制过来的,不知道和原先的有哪些不同,所以无法采用hashtable的方式保存变动后的内容。那有没有XML文件创建和读取的简单方法啊
    我只需要保存键值和数据就可以了,就像原先的ini文件的功能,我想用XML文件来代替
      

  13.   

    下面是我现在使用的方法,感觉有点怪,有没其它更好的方法?private System.Xml.XmlDocument cfgdoc=new System.Xml.XmlDocument();
    private System.Xml.XmlNode para1;
    private string parastr;
    private string CfgFileName;
    cfgdoc.Load(CfgFileName);
    para1=cfgdoc.GetElementsByTagName("paraname1")[0];
    parastr=para1.InnerText; //读取参数
    ...
    para1.InnerText=parastr;  //保存参数
    cfgdoc.Save(CfgFileName);
      

  14.   

    没有必要这么复杂把!web.config本来就更新后就不用重启的!    -->
        <compilation 
             defaultLanguage="c#"
             debug="true"
        />
    把debug设为“true”,再试试看!
      

  15.   

    我不是WEB方式运行啊,不是ASP.NET,楼上的没用啊
      

  16.   

    这个很容易的。我一直都用这个,哪个什么鬼app.config难用死了。
    //从xml文件中读取数据
    private void readXml()
    {
    string fileName=Application.StartupPath+"\\SysSetting.xml";

             XmlTextReader tr = new XmlTextReader(fileName);
    while (tr.Read())
    {
    if (tr.NodeType == XmlNodeType.Element)
    {
             LoadData(tr);
    } }

    tr.Close();
    }
    private void LoadData(XmlReader tr)
    {
    switch(tr.Name)
    {
    case "LocalPath":    this.txtFileDir.Text = tr.ReadElementString();
    break;
    case "RunStartTime": this.dateBegin.Text = tr.ReadElementString();
     break;
    default:             break;
    }
    }
      

  17.   

    superzxf(superzxf) 
    我程序是这样的,启动时读取config文件中的一些参数,确定服务器的位置,然后从服务器上检查是否有更新的config文件,如果有的话就把服务器上的config文件复制到本机并覆盖原先的config文件,然后程序继续读取config文件中的内容进行下一步的设置。
    由于config文件是复制过来的,不知道和原先的有哪些不同,所以无法采用hashtable的方式保存变动后的内容。
    ----------------------------------------------------------
    我觉得楼主的这种方式不太好,如果全部更新的话,那怎么能存在个性化的一个设置呢?
    对于app.config我觉得还是要放一些个性化的东西的,比如用户的输入习惯,和窗口习惯的,这样子的程序才会更有人性化的特色.而且我觉得完全只要在app.config自定义一个针对服务器的节点,以后只要更新这个节点应该就是足够了吧!app.config是xml呀!要充分利用的!