天天看點

Net操作配置檔案(Web.config|App.config)通用類

一、Net操作web.config通用類(代碼如下):

using System;
using System.Configuration;
using System.Web;
using System.Web.Configuration;


/// ConfigurationOperator 的摘要說明
public class ConfigurationOperator : IDisposable
{
    private Configuration config;
    public ConfigurationOperator()
        : this(HttpContext.Current.Request.ApplicationPath) { }
    public ConfigurationOperator(string path)
    {
        config = WebConfigurationManager.OpenWebConfiguration(path);
    }

    /// 設定應用程式配置節點,如果已經存在此節點,則會修改該節點的值,否則添加此節點
    ///

    /// 節點名稱 
    /// 節點值 
    public void SetAppSetting(string key, string value)
    {
        AppSettingsSection appSetting = (AppSettingsSection)config.GetSection("appSettings");
        if (appSetting.Settings[key] == null)//如果不存在此節點,則添加
        {
            appSetting.Settings.Add(key, value);
        }
        else//如果存在此節點,則修改
        {
            appSetting.Settings[key].Value = value;
        }
    }
    ///

    /// 設定資料庫連接配接字元串節點,如果不存在此節點,則會添加此節點及對應的值,存在則修改
    ///

    /// 節點名稱 
    /// 節點值 
    public void SetConnectionString(string key, string connectionString)
    {
        ConnectionStringsSection connectionSetting = (ConnectionStringsSection)config.GetSection("connectionStrings");
        if (connectionSetting.ConnectionStrings[key] == null)//如果不存在此節點,則添加
        {
            ConnectionStringSettings connectionStringSettings = new ConnectionStringSettings(key, connectionString);
            connectionSetting.ConnectionStrings.Add(connectionStringSettings);
        }
        else//如果存在此節點,則修改
        {
            connectionSetting.ConnectionStrings[key].ConnectionString = connectionString;
        }
    }
    ///

    /// 儲存所作的修改
    public void Save()
    {
        config.Save();
        config = null;
    }
    public void Dispose()
    {
        if (config != null)
        {
            config.Save();
        }
    }
}      

二、調用方法:

// 連接配接字元串
string connectionString = string.Format("Data Source={0};Initial Catalog={1};User ID={2};Password={3}; max pool size=150",
    tbx_ip.Text.Trim(), tbx_dbname.Text.Trim(), tbx_username.Text.Trim(), tbx_pwd.Text.Trim());

ConfigurationOperator config = new ConfigurationOperator();
config.SetConnectionString("defaultConnection", connectionString);
config.Save();      

繼續閱讀