您所在的位置: 程序员家园 -> 家园博客 ->
 
在哪里摔倒
就在哪里自己爬起来

用户登录

查  找

最新评论

最新留言

常用网站

网易邮箱 GMAIL  

百度搜索 MSDN

霏凡软件 BT精品

影视帝国 射 手 网

电驴下载 全 库 网

友情连接

茄菲的窝 冰冰博客

枫叶飘零 玫  瑰

ACEN 云 豹 子

统  计



修改web.config里AppSettings节点
狼子 发表于 2007-10-19 8:19:00 阅读全文 | 回复(0) | 引用通告 | 编辑

代码很简单,就是修改xml文件

   

private bool EditAppValue()
    {
        bool ok = true;
        //修改web.config
        XmlDocument xDoc = new XmlDocument();
        try
        {
            //打开web.config
            xDoc.Load(Server.MapPath("../Web.config"));
            string key;
            XmlNode app;
            app = xDoc.SelectSingleNode("/configuration/appSettings/add[@key='SiteName']");
            app.Attributes["value"].Value = "程序员家园";
            //关闭
            xDoc.Save(Server.MapPath("../web.config"));
        }
        catch (Exception ex)
        {
            ok = false;
            LabelMsg.Text = "修改失败:" + ex.Message;
        }
        finally
        {
            xDoc = null;
        }
        return ok;
    }

这里要记录的不是上面的代码,是XmlDocument类的Load方法,这个方法是没有Close()的,在网上查了很久,一直都搞不清,使用这个方法读取的xml文件是怎么释放资源的,大家都说设成null就可以了,为什么呢?我跟着这样子做了,就是想不通为什么会这样子,查了msdn,msdn里,Load完xml文件后只做Save,连null也不设

下面是微软中文社区的答复

一般使用Null并不代表就释放了对应的资源。一般我们都需要执行 Close 方法来完成这样的操作,例如 XMLReader.close() FileStream.close() 来释放当前正在读取得文件。但是有些类对于文件的读取是一次性直接读取到内存中的,所以他的方法就有别于前面的Close()。例如XMLDocument,您并不需要去调用Close方法。XMLdocument对于xml文件的读取是一次完成,在Load之后就结束了,并不是一直将文件处在打开的状态。如果您对于XMLdocument的使用完成了,您可以将它设为Null这样,GC就会自动回收这个对象。

发表评论:

    昵称:
    密码:
    主页:
    标题:
Powered by Oblog.