zoukankan      html  css  js  c++  java
  • 配置文件——WebApp.config文件读取和修改

     

    [csharp] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Configuration;  
    4. using System.Linq;  
    5. using System.Net.Mime;  
    6. using System.Text;  
    7. using System.Threading.Tasks;  
    8. using System.Web;  
    9. using System.Xml;  
    10.   
    11. namespace Infrastructure  
    12. {  
    13.     public class WebConfigHelper  
    14.     {  
    15.         private Configuration _config;  
    16.         private readonly string _configPath;  
    17.         private readonly ConfigType _configType;  
    18.   
    19.         /// <summary>  
    20.         /// 对应的配置文件  
    21.         /// </summary>  
    22.         public Configuration Configuration  
    23.         {  
    24.             get { return _config; }  
    25.             set { _config = value; }  
    26.         }  
    27.   
    28.         /// <summary>  
    29.         /// 构造函数  
    30.         /// </summary>  
    31.         public WebConfigHelper()  
    32.         {  
    33.             _configPath = HttpContext.Current.Request.ApplicationPath;  
    34.             Initialize();  
    35.         }  
    36.   
    37.         /// <summary>  
    38.         /// 构造函数  
    39.         /// </summary>  
    40.         /// <param name="configPath">.config文件的位置</param>  
    41.         /// <param name="configType">.config文件的类型,只能是网站配置文件或者应用程序配置文件</param>  
    42.         public WebConfigHelper(string configPath, ConfigType configType)  
    43.         {  
    44.             this._configPath = configPath;  
    45.             this._configType = configType;  
    46.             Initialize();  
    47.         }  
    48.   
    49.         //实例化configuration,根据配置文件类型的不同,分别采取了不同的实例化方法  
    50.         private void Initialize()  
    51.         {  
    52.             //如果是WinForm应用程序的配置文件  
    53.               
    54.             if (_configType == ConfigType.ExeConfig)  
    55.             {  
    56.                 _config = ConfigurationManager.OpenExeConfiguration(_configPath);  
    57.             }  
    58.             else //WebForm的配置文件  
    59.             {  
    60.                 _config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(_configPath);  
    61.             }  
    62.         }  
    63.   
    64.         public string GetValueByKey(string key)  
    65.         {  
    66.             return ConfigurationManager.AppSettings[key];  
    67.         }  
    68.   
    69.         /// <summary>  
    70.         /// 添加应用程序配置节点,如果已经存在此节点,则会修改该节点的值  
    71.         /// </summary>  
    72.         /// <param name="key">节点名称</param>  
    73.         /// <param name="value">节点值</param>  
    74.         public void AddAppSetting(string key, string value)  
    75.         {  
    76.             var appSetting = (AppSettingsSection)_config.GetSection("appSettings");  
    77.             if (appSetting.Settings[key] == null) //如果不存在此节点,则添加  
    78.             {  
    79.                 appSetting.Settings.Add(key, value);  
    80.             }  
    81.             else //如果存在此节点,则修改  
    82.             {  
    83.                 ModifyAppSetting(key, value);  
    84.             }  
    85.         }  
    86.   
    87.         /// <summary>  
    88.         /// 修改应用程序配置节点,如果不存在此节点,则会添加此节点及对应的值  
    89.         /// </summary>  
    90.         /// <param name="key">节点名称</param>  
    91.         /// <param name="newValue">节点值</param>  
    92.         public void ModifyAppSetting(string key, string newValue)  
    93.         {  
    94.             var appSetting = (AppSettingsSection)_config.GetSection("appSettings");  
    95.             if (appSetting.Settings[key] != null) //如果存在此节点,则修改  
    96.             {  
    97.                 appSetting.Settings[key].Value = newValue;  
    98.             }  
    99.             else //如果不存在此节点,则添加  
    100.             {  
    101.                 AddAppSetting(key, newValue);  
    102.             }  
    103.         }  
    104.   
    105.         /// <summary>  
    106.         /// 添加数据库连接字符串节点,如果已经存在此节点,则会修改该节点的值  
    107.         /// </summary>  
    108.         /// <param name="key">节点名称</param>  
    109.         /// <param name="connectionString">节点值</param>  
    110.         public void AddConnectionString(string key, string connectionString)  
    111.         {  
    112.             var connectionSetting = (ConnectionStringsSection)_config.GetSection("connectionStrings");  
    113.             if (connectionSetting.ConnectionStrings[key] == null) //如果不存在此节点,则添加  
    114.             {  
    115.                 var connectionStringSettings = new ConnectionStringSettings(key, connectionString);  
    116.                 connectionSetting.ConnectionStrings.Add(connectionStringSettings);  
    117.             }  
    118.             else //如果存在此节点,则修改  
    119.             {  
    120.                 ModifyConnectionString(key, connectionString);  
    121.             }  
    122.         }  
    123.   
    124.         /// <summary>  
    125.         /// 修改数据库连接字符串节点,如果不存在此节点,则会添加此节点及对应的值  
    126.         /// </summary>  
    127.         /// <param name="key">节点名称</param>  
    128.         /// <param name="connectionString">节点值</param>  
    129.         public void ModifyConnectionString(string key, string connectionString)  
    130.         {  
    131.             var connectionSetting = (ConnectionStringsSection)_config.GetSection("connectionStrings");  
    132.             if (connectionSetting.ConnectionStrings[key] != null) //如果存在此节点,则修改  
    133.             {  
    134.                 connectionSetting.ConnectionStrings[key].ConnectionString = connectionString;  
    135.             }  
    136.             else //如果不存在此节点,则添加  
    137.             {  
    138.                 AddConnectionString(key, connectionString);  
    139.             }  
    140.         }  
    141.   
    142.         /// <summary>  
    143.         /// 保存所作的修改  
    144.         /// </summary>  
    145.         public void Save()  
    146.         {  
    147.             _config.Save();  
    148.         }  
    149.     }  
    150.     public enum ConfigType  
    151.     {  
    152.         /// <summary>  
    153.         /// asp.net网站的config文件  
    154.         /// </summary>  
    155.         WebConfig = 1,  
    156.         /// <summary>  
    157.         /// Windows应用程序的config文件  
    158.         /// </summary>  
    159.         ExeConfig = 2  
    160.     }  
    161. }  
     
     
  • 相关阅读:
    webBrowser控制新窗口
    MSIL指令速 查表
    [转载]最新.NET Reactor v4.0.0.0 注册机
    如何得到webbrowser的句柄
    【C#】获取本地Cookie的问题
    visio 2007 简体中文版下载
    VMware Workstation(虚拟机) V6.0.2 Build 59824 汉化版 |
    ComponentOne Studio Enterprise 2010 v1
    [转载]MaxtoCode对.Net程序加密的原理及解密探讨三(实例解密)
    用WPF实现打印及打印预览
  • 原文地址:https://www.cnblogs.com/zhangxiaolei521/p/6068611.html
Copyright © 2011-2022 走看看