• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#读写config配置文件的方法

C#读写config配置文件的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#app.config,c#读取config文件,c#读取config,c#读取app.config,c#修改config等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <appSettings>
  <add key="ServerIP" value="127.0.0.1"></add>
  <add key="DataBase" value="WarehouseDB"></add>
  <add key="user" value="sa"></add>
  <add key="password" value="sa"></add>
 </appSettings>
</configuration>
</div>

对config配置文件的读写类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Configuration;
using System.ServiceModel;
using System.ServiceModel.Configuration;

namespace NetUtilityLib
{
  public static class ConfigHelper
  {
    //依据连接串名字connectionName返回数据连接字符串 
    public static string GetConnectionStringsConfig(string connectionName)
    {
      //指定config文件读取
      string file = System.Windows.Forms.Application.ExecutablePath;
      System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(file);
      string connectionString =
        config.ConnectionStrings.ConnectionStrings[connectionName].ConnectionString.ToString();
      return connectionString;
    }

    ///<summary> 
    ///更新连接字符串 
    ///</summary> 
    ///<param name="newName">连接字符串名称</param> 
    ///<param name="newConString">连接字符串内容</param> 
    ///<param name="newProviderName">数据提供程序名称</param> 
    public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName)
    {
      //指定config文件读取
      string file = System.Windows.Forms.Application.ExecutablePath;
      Configuration config = ConfigurationManager.OpenExeConfiguration(file);

      bool exist = false; //记录该连接串是否已经存在 
      //如果要更改的连接串已经存在 
      if (config.ConnectionStrings.ConnectionStrings[newName] != null)
      {
        exist = true;
      }
      // 如果连接串已存在,首先删除它 
      if (exist)
      {
        config.ConnectionStrings.ConnectionStrings.Remove(newName);
      }
      //新建一个连接字符串实例 
      ConnectionStringSettings mySettings =
        new ConnectionStringSettings(newName, newConString, newProviderName);
      // 将新的连接串添加到配置文件中. 
      config.ConnectionStrings.ConnectionStrings.Add(mySettings);
      // 保存对配置文件所作的更改 
      config.Save(ConfigurationSaveMode.Modified);
      // 强制重新载入配置文件的ConnectionStrings配置节 
      ConfigurationManager.RefreshSection("ConnectionStrings");
    }

    ///<summary> 
    ///返回*.exe.config文件中appSettings配置节的value项 
    ///</summary> 
    ///<param name="strKey"></param> 
    ///<returns></returns> 
    public static string GetAppConfig(string strKey)
    {
      string file = System.Windows.Forms.Application.ExecutablePath;
      Configuration config = ConfigurationManager.OpenExeConfiguration(file);
      foreach (string key in config.AppSettings.Settings.AllKeys)
      {
        if (key == strKey)
        {
          return config.AppSettings.Settings[strKey].Value.ToString();
        }
      }
      return null;
    }

    ///<summary> 
    ///在*.exe.config文件中appSettings配置节增加一对键值对 
    ///</summary> 
    ///<param name="newKey"></param> 
    ///<param name="newValue"></param> 
    public static void UpdateAppConfig(string newKey, string newValue)
    {
      string file = System.Windows.Forms.Application.ExecutablePath;
      Configuration config = ConfigurationManager.OpenExeConfiguration(file);
      bool exist = false;
      foreach (string key in config.AppSettings.Settings.AllKeys)
      {
        if (key == newKey)
        {
          exist = true;
        }
      }
      if (exist)
      {
        config.AppSettings.Settings.Remove(newKey);
      }
      config.AppSettings.Settings.Add(newKey, newValue);
      config.Save(ConfigurationSaveMode.Modified);
      ConfigurationManager.RefreshSection("appSettings");
    }

    // 修改system.serviceModel下所有服务终结点的IP地址
    public static void UpdateServiceModelConfig(string configPath, string serverIP)
    {
      Configuration config = ConfigurationManager.OpenExeConfiguration(configPath);
      ConfigurationSectionGroup sec = config.SectionGroups["system.serviceModel"];
      ServiceModelSectionGroup serviceModelSectionGroup = sec as ServiceModelSectionGroup;
      ClientSection clientSection = serviceModelSectionGroup.Client;
      foreach (ChannelEndpointElement item in clientSection.Endpoints)
      {
        string pattern = @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b";
        string address = item.Address.ToString();
        string replacement = string.Format("{0}", serverIP);
        address = Regex.Replace(address, pattern, replacement);
        item.Address = new Uri(address);
      }

      config.Save(ConfigurationSaveMode.Modified);
      ConfigurationManager.RefreshSection("system.serviceModel");
    }

    // 修改applicationSettings中App.Properties.Settings中服务的IP地址
    public static void UpdateConfig(string configPath, string serverIP)
    {
      Configuration config = ConfigurationManager.OpenExeConfiguration(configPath);
      ConfigurationSectionGroup sec = config.SectionGroups["applicationSettings"];
      ConfigurationSection configSection = sec.Sections["DataService.Properties.Settings"];
      ClientSettingsSection clientSettingsSection = configSection as ClientSettingsSection;
      if (clientSettingsSection != null)
      {
        SettingElement element1 = clientSettingsSection.Settings.Get("DataService_SystemManagerWS_SystemManagerWS");
        if (element1 != null)
        {
          clientSettingsSection.Settings.Remove(element1);
          string oldValue = element1.Value.ValueXml.InnerXml;
          element1.Value.ValueXml.InnerXml = GetNewIP(oldValue, serverIP);
          clientSettingsSection.Settings.Add(element1);
        }

        SettingElement element2 = clientSettingsSection.Settings.Get("DataService_EquipManagerWS_EquipManagerWS");
        if (element2 != null)
        {
          clientSettingsSection.Settings.Remove(element2);
          string oldValue = element2.Value.ValueXml.InnerXml;
          element2.Value.ValueXml.InnerXml = GetNewIP(oldValue, serverIP);
          clientSettingsSection.Settings.Add(element2);
        }
      }
      config.Save(ConfigurationSaveMode.Modified);
      ConfigurationManager.RefreshSection("applicationSettings");
    }

    private static string GetNewIP(string oldValue, string serverIP)
    {
      string pattern = @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b";
      string replacement = string.Format("{0}", serverIP);
      string newvalue = Regex.Replace(oldValue, pattern, replacement);
      return newvalue;
    }
  }
}
</div>

测试代码如下:

class Program
  {
    static void Main(string[] args)
    {
      try
      {
        //string file = System.Windows.Forms.Application.ExecutablePath + ".config";
        //string file1 = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
        string serverIP = ConfigHelper.GetAppConfig("ServerIP");
        string db = ConfigHelper.GetAppConfig("DataBase");
        string user = ConfigHelper.GetAppConfig("user");
        string password = ConfigHelper.GetAppConfig("password");

        Console.WriteLine(serverIP);
        Console.WriteLine(db);
        Console.WriteLine(user);
        Console.WriteLine(password);

        ConfigHelper.UpdateAppConf



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#读写config配置文件的方法
  • C#中读取App.config配置文件代码实例
  • C#操作config文件的具体方法
  • c# 连接access数据库config配置

相关文章

  • 2017-05-28基于C# winform实现图片上传功能的方法
  • 2017-05-28asp.net core mvc权限控制:在视图中控制操作权限
  • 2017-05-28详解C#用new和override来实现抽象类的重写区别
  • 2017-05-28asp.net core项目mvc权限控制:分配权限
  • 2017-05-28详解C#中==、Equals、ReferenceEquals的区别
  • 2017-05-28使用C#发送Http请求实现模拟登陆实例
  • 2017-05-28Question:基于C#连续赋值的面试题(解答)
  • 2017-05-28解决C# winForm自定义鼠标样式的两种实现方法详解
  • 2017-05-28C#利用反射来判断对象是否包含某个属性的实现方法
  • 2017-05-28C# winform点击生成二维码实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#连接mysql的方法【基于vs2010】
    • 一道关于C#参数传递的面试题分析
    • C# Web应用调试开启外部访问步骤解析
    • C#常用目录文件操作类实例
    • C#中委托用法实例分析
    • c# 调用Surfer软件,添加引用的具体操作方法
    • C#使用委托的步骤浅析
    • C# RSA分段加解密实现方法详解
    • FTPClientHelper辅助类 实现文件上传,目录操作,下载等操作
    • C#完成word文档打印的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有