国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

兩種讀寫配置文件的方案(app.config與web.config通用)

2019-11-17 02:27:55
字體:
供稿:網(wǎng)友

兩種讀寫配置文件的方案(app.config與web.config通用)

第一種方法:采用MS現(xiàn)有的ConfigurationManager來進(jìn)行讀寫

using System.Configuration;namespace Zwj.TEMS.Common{    public abstract class ConfigHelper    {        PRivate ConfigHelper()        { }        /// <summary>        /// 獲取配置值        /// </summary>        /// <param name="key"></param>        /// <returns></returns>        public static string GetAppSettingValue(string key)        {            return ConfigurationManager.AppSettings[key];        }        /// <summary>        /// 設(shè)置配置值(存在則更新,不存在則新增)        /// </summary>        /// <param name="key"></param>        /// <param name="value"></param>        public static void SetAppSettingValue(string key, string value)        {            var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);            var setting = config.AppSettings.Settings[key];            if (setting==null)            {                config.AppSettings.Settings.Add(key, value);            }            else            {                setting.Value = value;            }            config.Save(ConfigurationSaveMode.Modified);            ConfigurationManager.RefreshSection("appSettings");        }        /// <summary>        /// 刪除配置值        /// </summary>        /// <param name="key"></param>        public static void RemoveAppSetting(string key)        {            var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);            config.AppSettings.Settings.Remove(key);            config.Save(ConfigurationSaveMode.Modified);            ConfigurationManager.RefreshSection("appSettings");        }        /// <summary>        /// 獲取連接字符串        /// </summary>        /// <param name="name"></param>        /// <returns></returns>        public static string GetConnectionString(string name)        {          return  ConfigurationManager.ConnectionStrings[name].ConnectionString;        }        /// <summary>        /// 設(shè)置連接字符串的值(存在則更新,不存在則新增)        /// </summary>        /// <param name="name"></param>        /// <param name="connstr"></param>        /// <param name="provider"></param>        public static void SetConnectionString(string name,string connstr, string provider)        {            var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);            ConnectionStringSettings connStrSettings = config.ConnectionStrings.ConnectionStrings[name];            if (connStrSettings != null)            {                connStrSettings.ConnectionString = connstr;                connStrSettings.ProviderName = provider;            }            else            {                connStrSettings = new ConnectionStringSettings(name, connstr, provider);                config.ConnectionStrings.ConnectionStrings.Add(connStrSettings);            }            config.Save(ConfigurationSaveMode.Modified);            ConfigurationManager.RefreshSection("connectionStrings");        }        /// <summary>        /// 刪除連接字符串配置項        /// </summary>        /// <param name="name"></param>        public static void RemoveConnectionString(string name)        {            var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);            config.ConnectionStrings.ConnectionStrings.Remove(name);            config.Save(ConfigurationSaveMode.Modified);            ConfigurationManager.RefreshSection("connectionStrings");        }    }}

 注意:不能直接使用ConfigurationManager.AppSettings及ConfigurationManager.ConnectionStrings進(jìn)行寫操作(即:Add,Remove),因為這兩個屬性是只讀的,本人之前也疑惑,明明能夠調(diào)用Add,Remove方法,但使用時卻報錯。

第二種方法:采用原生的xml+XPATH來讀寫(來源于網(wǎng)絡(luò))

//==============================================// FileName: ConfigManager// Description: 靜態(tài)方法業(yè)務(wù)類,用于對C#、asp.net中的WinForm & WebForm 項目程序配置文件// app.config和web.config的[appSettings]和[connectionStrings]節(jié)點(diǎn)進(jìn)行新增、修改、刪除和讀取相關(guān)的操作。//==============================================using System;using System.Data;using System.Configuration;using System.Web;using System.Collections.Generic;using System.Text;using System.Xml;public enum ConfigurationFile{    AppConfig = 1,    WebConfig = 2}/// <summary>/// ConfigManager 應(yīng)用程序配置文件管理器/// </summary>public class ConfigManager{    public ConfigManager()    {        //        // TODO: 在此處添加構(gòu)造函數(shù)邏輯        //    }    /// <summary>    /// 對[appSettings]節(jié)點(diǎn)依據(jù)Key值讀取到Value值,返回字符串    /// </summary>    /// <param name="configurationFile">要操作的配置文件名稱,枚舉常量</param>    /// <param name="key">要讀取的Key值</param>    /// <returns>返回Value值的字符串</returns>    public static string ReadValueByKey(ConfigurationFile configurationFile, string key)    {        string value = string.Empty;        string filename = string.Empty;        if (configurationFile.ToString() == ConfigurationFile.AppConfig.ToString())        {            filename = System.Windows.Forms.application.ExecutablePath + ".config";        }        else        {            filename = System.AppDomain.CurrentDomain.BaseDirectory + "web.config";        }        XmlDocument doc = new XmlDocument();        doc.Load(filename); //加載配置文件         XmlNode node = doc.SelectSingleNode("http://appSettings"); //得到[appSettings]節(jié)點(diǎn)         ////得到[appSettings]節(jié)點(diǎn)中關(guān)于Key的子節(jié)點(diǎn)        XmlElement element = (XmlElement)node.SelectSingleNode("http://add[@key='" + key + "']");        if (element != null)        {            value = element.GetAttribute("value");        }        return value;    }    /// <summary>    /// 對[connectionStrings]節(jié)點(diǎn)依據(jù)name值讀取到connectionString值,返回字符串    /// </summary>    /// <param name="configurationFile">要操作的配置文件名稱,枚舉常量</param>    /// <param name="name">要讀取的name值</param>    /// <returns>返回connectionString值的字符串</returns>    public static string ReadConnectionStringByName(ConfigurationFile configurationFile, string name)    {        string connectionString = string.Empty;        string filename = string.Empty;        if (configurationFile.ToString() == ConfigurationFile.AppConfig.ToString())        {            filename = System.Windows.Forms.Application.ExecutablePath + ".config";        }        else        {            filename = System.AppDomain.CurrentDomain.BaseDirectory + "web.config";        }        XmlDocument doc = new XmlDocument();        doc.Load(filename); //加載配置文件         XmlNode node = doc.SelectSingleNode("http://connectionStrings"); //得到[appSettings]節(jié)點(diǎn)         ////得到[connectionString]節(jié)點(diǎn)中關(guān)于name的子節(jié)點(diǎn)        XmlElement element = (XmlElement)node.SelectSingleNode("http://add[@name='" + name + "']");        if (element != null)        {            connectionString = element.GetAttribute("connectionString");        }        return connectionString;    }    /// <summary>    /// 更新或新增[appSettings]節(jié)點(diǎn)的子節(jié)點(diǎn)值,存在則更新子節(jié)點(diǎn)Value,不存在則新增子節(jié)點(diǎn),返回成功與否布爾值    /// </summary>    /// <param name="configurationFile">要操作的配置文件名稱,枚舉常量</param>    /// <param name="key">子節(jié)點(diǎn)Key值</param>    /// <param name="value">子節(jié)點(diǎn)value值</param>    /// <returns>返回成功與否布爾值</returns>    public static bool UpdateOrCreateAppSetting(ConfigurationFile configurationFile, string key, string value)    {        bool isSuccess = false;        string filename = string.Empty;        if (configurationFile.ToString() == ConfigurationFile.AppConfig.ToString())        {            filename = System.Windows.Forms.Application.ExecutablePath + ".config";        }        else        {            filename = System.AppDomain.CurrentDomain.BaseDirectory + "web.config";        }        XmlDocument doc = new XmlDocument();        doc.Load(filename); //加載配置文件         XmlNode node = doc.SelectSingleNode("http://appSettings"); //得到[appSettings]節(jié)點(diǎn)         try        {            ////得到[appSettings]節(jié)點(diǎn)中關(guān)于Key的子節(jié)點(diǎn)            XmlElement element = (XmlEleme
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 剑阁县| 巴中市| 延吉市| 怀宁县| 安新县| 安西县| 米易县| 开封县| 新乡市| 乌拉特中旗| 汾阳市| 恩施市| 集贤县| 资源县| 凯里市| 沙坪坝区| 郓城县| 光山县| 莱西市| 克拉玛依市| 西昌市| 安乡县| 枣阳市| 昂仁县| 华安县| 水富县| 永昌县| 黄大仙区| 横峰县| 乐都县| 娄底市| 如皋市| 蒙城县| 青海省| 吴旗县| 阳谷县| 中宁县| 莒南县| 安化县| 钟山县| 高青县|