您的位置:首页 > 其它

对config文件中的配置进行新增修改删除读取操作

2006-03-19 16:10 951 查看

using System;


using System.Configuration;


using System.Reflection;


using System.Web;


using System.Xml;


public enum ConfigFileType






{


WebConfig,


AppConfig


}




namespace WebApplication1






{




/**//// <summary>


/// Summary description for ReadWriteConfig.


/// </summary>


public class ReadWriteConfig






{


public string docName = String.Empty;


private XmlNode node=null;


private int _configType;


public int ConfigType






{




get

{ return _configType; }




set

{ _configType=value; }


}






SetValue#region SetValue


public bool SetValue(string key, string value)






{


XmlDocument cfgDoc = new XmlDocument();


loadConfigDoc(cfgDoc);


// retrieve the appSettings node


node = cfgDoc.SelectSingleNode("//appSettings");


if( node == null )






{


throw new InvalidOperationException( "appSettings section not found");


}


try






{


// XPath select setting "add" element that contains this key


XmlElement addElem= (XmlElement)node.SelectSingleNode("//add[@key='" +key +"']") ;


if(addElem!=null)






{


addElem.SetAttribute("value",value);


}


// not found, so we need to add the element, key and value


else






{


XmlElement entry = cfgDoc.CreateElement("add");


entry.SetAttribute("key",key);


entry.SetAttribute("value",value);


node.AppendChild(entry);


}


//save it


saveConfigDoc(cfgDoc,docName);


return true;


}


catch






{


return false;


}


}




#endregion






saveConfigDoc#region saveConfigDoc


private void saveConfigDoc(XmlDocument cfgDoc,string cfgDocPath)






{


try






{


XmlTextWriter writer = new XmlTextWriter( cfgDocPath , null );


writer.Formatting = Formatting.Indented;


cfgDoc.WriteTo( writer );


writer.Flush();


writer.Close();


return;


}


catch






{


throw;


}


}




#endregion






removeElement#region removeElement


public bool removeElement (string elementKey)






{


try






{


XmlDocument cfgDoc = new XmlDocument();


loadConfigDoc(cfgDoc);


// retrieve the appSettings node


node = cfgDoc.SelectSingleNode("//appSettings");


if( node == null )






{


throw new InvalidOperationException( "appSettings section not found");


}


// XPath select setting "add" element that contains this key to remove


node.RemoveChild( node.SelectSingleNode("//add[@key='" +elementKey +"']") );


saveConfigDoc(cfgDoc,docName);


return true;


}


catch






{


return false;


}


}


#endregion






modifyElement#region modifyElement


public bool modifyElement (string elementKey)






{


try






{


XmlDocument cfgDoc = new XmlDocument();


loadConfigDoc(cfgDoc);


// retrieve the appSettings node


node = cfgDoc.SelectSingleNode("//appSettings");


if( node == null )






{


throw new InvalidOperationException( "appSettings section not found");


}


// XPath select setting "add" element that contains this key to remove


node.RemoveChild(node.SelectSingleNode("//add[@key='" +elementKey +"']"));


saveConfigDoc(cfgDoc,docName);


return true;


}


catch






{


return false;


}


}


#endregion






loadConfigDoc#region loadConfigDoc


private XmlDocument loadConfigDoc( XmlDocument cfgDoc )






{


// load the config file


if( Convert.ToInt32(ConfigType)==Convert.ToInt32(ConfigFileType.AppConfig))






{


docName= ((Assembly.GetEntryAssembly()).GetName()).Name;


docName += ".exe.config";


}


else






{


docName=HttpContext.Current.Server.MapPath("web.config");


}


cfgDoc.Load( docName );


return cfgDoc;


}


#endregion


}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐