专栏首页王磊的博客Net操作配置文件(Web.config|App.config)通用类

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();

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Net任意String格式转换为DateTime类型

    方式一:Convert.ToDateTime(string) Convert.ToDateTime(string) 注意:string格式有要求,必须是yyyy...

    Java中文社群_老王
  • 震惊!这样终止线程,竟然会导致服务宕机?

    或许你已经发现了,上面这段代码使用了 Thread.stop() 来终止线程,在 Java 程序中是不允许这样终止线程的。什么?你问为什么不能这样?

    Java中文社群_老王
  • 这样终止线程,竟然会导致服务宕机?

    或许你已经发现了,上面这段代码使用了 Thread.stop() 来终止线程,在 Java 程序中是不允许这样终止线程的。什么?你问为什么不能这样?

    Java中文社群_老王
  • Java之手写LinkedList(上)

    jdk中的LinkedList的实现原理是使用双向链表实现,我们自定义为了简单适合新手入门链表实现。首先看看我们需要仿造的方法吧。

    用户5224393
  • 在Selenium Webdriver中使用XPath Contains、Sibling函数定位

    前言 在一般情况下,我们通过简单的xpath即可定位到目标元素,但对于一些既没id又没name,而且其他属性都是动态的情况就很难通过简单的方式进行定位了。 在这...

    苦叶子
  • Redis基础知识(二)

    redis中的事务是一组命令的集合,事务中的命令要么全部执行,要么都不执行,Redis 通过 MULTI 、DISCARD 、EXEC 和 WATCH 四个命令...

    没有故事的陈师傅
  • 本体技术视点 | 我该怎么信赖“朋友的朋友”?

    上次我们讲到 Celo 中采用了<地址,公钥>关系映射的方式,方便用户进行转账等操作。具体来说,Celo 把用户的电话号码和公钥进行了绑定。而电话号码和公钥的绑...

    本体Ontology
  • 分析比特币网络:一种去中心化、点对点的网络架构

    Tiny熊
  • Galera Cluster for MySQL 详解(三)——管理监控

    MySQL上在线执行DDL语句(create table、alter table、create index、grant ...)一直是个令人头疼...

    用户1148526
  • Python爬虫笔记4-Beautif

    与lxml一样,BeautifulSoup也是一个HTML/XML的解析器,主要功能也是如何解析和提取HTML/XML数据。

    py3study

扫码关注云+社区

领取腾讯云代金券