在后台我想把字符串“abc”保存到Web.config中(任何位置都行,起到暂存功能),代码如何实现?
然后在后台从Web.config中读取字符串“abc”,代码如何实现?
在web.config中放入<appSetting>中
eg:
<appSettings> <add key="log4net.Internal.Debug" value="true"/> <add key="tax" value="0.4"/> </appSettings>
在后台访问
string log4Str = System.Configuration.ConfigurationManager.AppSettings["log4net.Internal.Debug"].ToString();
的确,看其定义已经是String了,这个没大注意……
所以不用再ToString()了……
string log4Str = System.Configuration.ConfigurationManager.AppSettings["log4net.Internal.Debug"];
@滴答的雨:在后台,如何修改value的值
@夏日星: 直接修改web.config文件我记得是不推荐的。可以考虑自己弄个xml文件进行修改。。。
自制XML文件:http://blog.csdn.net/fishpowersoft/article/details/1957113
/// <summary> /// 修改web.config文件appSettings配置节中的Add里的value属性 /// </summary> /// <remarks> /// 注意,调用该函数后,会使整个Web Application重启,导致当前所有的会话丢失 /// </remarks> /// <param name="key">要修改的键key</param> /// <param name="strValue">修改后的value</param> /// <exception cref="">找不到相关的键</exception> /// <exception cref="">权限不够,无法保存到web.config文件中</exception> public void Modify(string key,string strValue) { string XPath="/configuration/appSettings/add[@key='?']"; XmlDocument domWebConfig=new XmlDocument(); domWebConfig.Load( (HttpContext.Current.Server.MapPath("web.config")) ); XmlNode addKey=domWebConfig.SelectSingleNode( (XPath.Replace("?",key)) ); if(addKey == null) { throw new ArgumentException("没有找到<add key='"+key+"' value=.../>的配置节"); } addKey.Attributes["value"].InnerText=strValue; domWebConfig.Save( (HttpContext.Current.Server.MapPath("web.config")) ); }
楼上
System.Configuration.ConfigurationManager.AppSettings["log4net.Internal.Debug"]已经是string了,为什么还要ToString()?
这个修改WebConfig?不太好把,每次修改都会导致IIS应用程序池回收。当然只读的话没问题。猜既然是临时放入肯定会由读和写
其实写到其他的XML文件会更好些。或者资源文件里。