读取、存储webconfig几种方法
根据提供的文件信息,本文将详细解释如何在.NET框架下读取和存储`web.config`文件中的数据。在ASP.NET应用程序中,`web.config`文件扮演着至关重要的角色,它不仅包含应用程序的配置设置,还提供了应用程序的行为配置。下面将详细介绍几个关键的方法。 ### 一、读取`web.config`中的值 #### 方法一:读取单个配置值 ```csharp public static string ReadConfig(string sKey) { string item = "appSettings"; string key = sKey; string value = ""; Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(System.Web.HttpContext.Current.Request.ApplicationPath); AppSettingsSection appSection = (AppSettingsSection)config.GetSection(item); if (appSection.Settings[key] == null) { // 如果配置项不存在,则返回空字符串或可以添加默认值 return ""; } else { value = appSection.Settings[key].Value; } return value; } ``` **解析:** - 此方法用于从`web.config`的`appSettings`部分读取指定键的值。 - 使用`WebConfigurationManager.OpenWebConfiguration`方法打开当前应用程序路径下的`web.config`文件。 - `GetSection("appSettings")`获取配置文件中的`appSettings`部分。 - 如果指定的键不存在于配置文件中,则返回空字符串;如果存在,则返回对应的值。 #### 方法二:读取并添加新配置值 ```csharp public static string ReadConfig(string sKey, string sValue) { string item = "appSettings"; string key = sKey; string value = ""; Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(System.Web.HttpContext.Current.Request.ApplicationPath); AppSettingsSection appSection = (AppSettingsSection)config.GetSection(item); if (appSection.Settings[key] == null) { appSection.Settings.Add(key, sValue); config.Save(); // 保存更改 } else { value = appSection.Settings[key].Value; } return value; } ``` **解析:** - 与方法一类似,但增加了当配置项不存在时的处理逻辑。 - 如果指定的键不存在,则添加一个新键值对,并保存配置文件。 - 如果键已存在,则返回对应的值。 ### 二、存储/更新`web.config`中的值 #### 方法:更新`web.config`中的值 ```csharp public void WriteConfig(string sSoftDogValue, string sTimeValue) { string filename = HttpContext.Current.Server.MapPath("~/") + @"Web.config"; File.SetAttributes(filename, FileAttributes.Normal); // 设置文件属性为正常 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(filename); // 加载XML文档 XmlNodeList topM = xmlDoc.DocumentElement.ChildNodes; foreach (XmlElement element in topM) { if (element.Name == "appSettings") { XmlNodeList node = element.ChildNodes; if (node.Count > 0) { foreach (XmlElement el in node) { switch (el.Attributes["key"].Value) { case "Dogresult": el.Attributes["value"].Value = sSoftDogValue; break; case "DogReadTime": el.Attributes["value"].Value = sTimeValue; break; } } } } } xmlDoc.Save(filename); // 保存更改后的XML文档 } ``` **解析:** - 此方法通过XML操作直接修改`web.config`文件中的值。 - 使用`XmlDocument`加载整个`web.config`文件。 - 遍历`appSettings`节点下的所有子节点,根据键名更新对应节点的值。 - 修改完成后,将XML文档保存回`web.config`文件。 ### 总结 以上介绍了几种从`web.config`文件读取和存储数据的方法。这些方法可以满足大部分场景的需求,但在实际应用中还需要注意权限控制和异常处理等问题。通过灵活运用这些技术,可以有效地管理ASP.NET应用程序的配置信息。
/// <summary>
/// 读取Webconfig值
/// </summary>
/// <param name="sKey"></param>
/// <returns></returns>
public static string readConfigLastReadDog(string sKey)
{
string item = "appSettings";
string key = sKey;
string value = "";
Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(System.Web.HttpContext.Current.Request.ApplicationPath);
AppSettingsSection appSection = (AppSettingsSection)config.GetSection(item);
if (appSection.Settings[key] == null)
{
appSection.Settings.Add(key, value);
config.Save();
}
else
{
value = appSection.Settings[key].Value;
}
return value;
}
/// <summary>
/// 读取webconfig值
/// <param name="sKey"></param>
/// <param name="sValue"></param>
/// <returns></returns>
public static string readConfigLastReadDog(string sKey, string sValue)
{
string item = "appSettings";
string key = sKey;
string value = "";
Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(System.Web.HttpContext.Current.Request.ApplicationPath);
AppSettingsSection appSection = (AppSettingsSection)config.GetSection(item);
if (appSection.Settings[key] == null)
{
appSection.Settings.Add(key, sValue);
config.Save();
}
else
{
value = appSection.Settings[key].Value;
}
return value;
}
/// <summary>
/// 写入webconfig值
/// </summary>
/// <param name="sSoftDogValue"></param>
/// <param name="sTimeValue"></param>
剩余5页未读,继续阅读
- 粉丝: 36
- 资源: 20
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Java和MySQL的学生信息管理系统.zip
- (源码)基于ASP.NET Core的零售供应链管理系统.zip
- (源码)基于PythonSpleeter的戏曲音频处理系统.zip
- (源码)基于Spring Boot的监控与日志管理系统.zip
- (源码)基于C++的Unix V6++二级文件系统.zip
- (源码)基于Spring Boot和JPA的皮皮虾图片收集系统.zip
- (源码)基于Arduino和Python的实时歌曲信息液晶显示屏展示系统.zip
- (源码)基于C++和C混合模式的操作系统开发项目.zip
- (源码)基于Arduino的全球天气监控系统.zip
- OpenCVForUnity2.6.0.unitypackage