C#简单操作app.config文件
即将操作的app.config文件内容如下
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--使用自定义节点必须添加如下项, 且如下项只能在Configuration中-->
<configSections>
<sectionGroup name="MySettings">
<section name="MySet" type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>
</configSections> <connectionStrings>
<!--无密码access数据库访问方式-->
<add name="connAcc" connectionString="Provider=Microsoft.Jet.OleDb.4.0;Data Source=db.mdb"/>
<!--有密码access数据库访问方式-->
<add name="conn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ./MyPasswordProtected.MDB;Jet OLEDB:Database Password=MyPassword;"/>
<add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ./MyPasswordProtected.MDB;Jet OLEDB:Database Password=MyPassword;"/>
</connectionStrings> <appSettings>
<!--设置替换汉字-->
<add key="splitChar" value="@"/>
<!--设置替换汉字-->
<add key="splitCharNew" value="囧"/>
<!--设置每次记忆的边框-->
<add key="biankuang" value="几字"/>
</appSettings> <MySettings>
<MySet>
<add key="8公分纸竖1" value="2.7,23,-10,0.76,230"/>
<add key="8公分纸竖2" value="2,23,30,0.81,230"/>
<add key ="8公分纸横" value ="1.5,23,-10,0.76,220"/>
<add key ="彩带" value="10,23,30,0.79,220"/>
<add key ="11公分竖" value="4,23,45,0.79,340"/>
<add key ="11公分横" value ="4,34,30,0.76,340"/>
</MySet>
</MySettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
OperatAppConfig类内容如下, 我觉得使用微软的ConfigurationManager 在没有自定义节点时非常方便, 但是如果涉及到自定义节点后将会比较麻烦, 所以莫不如直接把app.config当做xml文件, 直接操作(需要注意的是程序在运行时其实执行的是appName.exe.config文件, 并非app.config文件):
/// <summary>
/// 对程序运行中的appConfig进行读写
/// </summary>
public class OperatAppConfig
{
public static bool DelXmlNode(string appNode, string key)
{
try
{
string strPath = System.Windows.Forms.Application.ExecutablePath + ".config";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(strPath); XmlNode xNode = xDoc.DocumentElement.SelectSingleNode(appNode); foreach (XmlNode item in xNode.ChildNodes )
{
// System.Console.WriteLine(item.Attributes[0].Value);
if (item.Attributes[0].Value == key)
{
xNode.RemoveChild(item);
}
} xDoc.Save(strPath);
return true;
}
catch (System.Exception ex)
{
return false;
}
} /// <summary>
/// 对指定的节点添加子节点
/// </summary>
/// <param name="appNode">指定的节点名称一般为//MySettings//MySet格式</param>
/// <param name="key">这个方法只添加add, 所以这里需要给出key和value</param>
/// <param name="value">这个方法只添加add, 所以这里需要给出key和value</param>
/// <returns></returns>
public static bool AddXmlNode(string appNode,string key,string value)
{
try
{
string strPath = System.Windows.Forms.Application.ExecutablePath + ".config";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(strPath); XmlNode xNode = xDoc.DocumentElement.SelectSingleNode(appNode); XmlElement newElement = xDoc.CreateElement("add");
// newElement.InnerText = "black";
newElement.SetAttribute("key", key);//添加一个带有属性的节点信息
newElement.SetAttribute("value", value);
xNode.AppendChild(newElement); //追加到xNode下
//保存更改
xDoc.Save(strPath);
return true;
}
catch (System.Exception ex)
{
return false;
}
} /// <summary>
/// 获取某个指定节点下的所有key
/// </summary>
/// <param name="appKey"></param>
/// <param name="appValue"></param>
public static System.Collections.Generic.List<string> GetKeys(string appNode)
{
System.Collections.Generic.List<string> xmlNodes = new System.Collections.Generic.List<string>();
try
{ XmlDocument xDoc = new XmlDocument();
//要注意的是使用ExecutablePath所获取的一般是 appName.exe.config文件中的内容, 而不是appName.config中的内容
xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config"); XmlNode xNode = xDoc.SelectSingleNode(appNode); foreach (XmlElement item in xNode)
{
xmlNodes.Add(item.Attributes[0].Value + "囧" + item.Attributes[1].Value);
}
return xmlNodes;
}
catch
{
xmlNodes.Clear();
xmlNodes.Add("默认值囧2,23,0,0.9,220");
return xmlNodes;
}
} /// <summary>
/// 根据键设置值
/// </summary>
/// <param name="appKey"></param>
/// <param name="appValue"></param>
public static void SetAppConfig(string appKey, string appValue)
{
XmlDocument xDoc = new XmlDocument();
xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config"); var xNode = xDoc.SelectSingleNode("//appSettings"); var xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']");
if (xElem != null)
xElem.SetAttribute("value", appValue);
else
{
var xNewElem = xDoc.CreateElement("add");
xNewElem.SetAttribute("key", appKey);
xNewElem.SetAttribute("value", appValue);
xNode.AppendChild(xNewElem);
}
xDoc.Save(System.Windows.Forms.Application.ExecutablePath + ".config");
} /// <summary>
/// 根据键查找值
/// </summary>
/// <param name="appKey"></param>
/// <returns></returns>
public static string GetAppConfig(string appKey)
{
XmlDocument xDoc = new XmlDocument();
xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config"); var xNode = xDoc.SelectSingleNode("//appSettings"); var xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']"); if (xElem != null)
{
return xElem.Attributes["value"].Value;
}
return string.Empty;
} /// <summary>
/// 根据键查找值
/// </summary>
/// <param name="appKey"></param>
/// <returns></returns>
public static char GetAppConfigChar(string appKey)
{
try
{
XmlDocument xDoc = new XmlDocument();
xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config"); var xNode = xDoc.SelectSingleNode("//appSettings"); var xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']"); if (xElem != null)
{
return XmlConvert.ToChar(xElem.Attributes["value"].Value);
}
}
catch { return '囧';
}
return '囧';
}
}
调用:
//获取此节点下所有的key
OperatAppConfig.GetKeys("//MySettings//MySet");
//删除此节点下指定key的节点
bool isDel = Common.OperatAppConfig.DelXmlNode("//MySettings//MySet", this.txtZKName.Text.Trim());
//在指定节点下新增节点
bool isAdd = Common.OperatAppConfig.AddXmlNode("//MySettings//MySet", this.txtZKName.Text.Trim(), strValue);
//根据键找值
OperatAppConfig.GetAppConfigChar("splitCharNew")
C#简单操作app.config文件的更多相关文章
- 第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获得连接字符串
第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获 ...
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...
- C# App.config文件的使用
App.config文件 1. 配置文件概述: 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序 ...
- WPF程序中App.Config文件的读与写
WPF程序中的App.Config文件是我们应用程序中经常使用的一种配置文件,System.Configuration.dll文件中提供了大量的读写的配置,所以它是一种高效的程序配置方式,那么今天我就 ...
- C#项目中关于多个程序集下App.config文件的问题
在项目中我们会经常用到App.config文件,有的是自动生成的,比如引用webservice.wcf服务时生成:也有手动建立的配置文件直接默认名就为app.config.这些配置有的保存当前程序集用 ...
- 操作App.config的类(转载)
http://www.cnblogs.com/yaojiji/archive/2007/12/17/1003191.html 操作App.config的类 public class DoConfig ...
- 配置文件——App.config文件读取和修改
作为普通的xml文件读取的话,首先就要知道怎么寻找文件的路径.我们知道一般配置文件就在跟可执行exe文件在同一目录下,且仅仅在名称后面添加了一个.config 因此,可以用Application.Ex ...
- WPF C#之读取并修改App.config文件
原文:WPF C#之读取并修改App.config文件 简单介绍App.config App.config文件一般是存放数据库连接字符串的. 下面来简单介绍一下App.config文件的修改和更新. ...
- Visual Studio 2013 Unit Test Project App.config文件设置方法
开放中经常会要做单元测试,新的项目又没有单元测试项目,怎么才能搭建一个单元测试项目呢? 下面跟我四步走,如有错误之处,还请指正! 1.添加项目 2.添加配置文件 新建app.config文件,注意不是 ...
随机推荐
- python脚本2_输入2个数比较大小后从小到大升序打印
#输入2个数,比较大小后,从小到大升序打印 a = input('first: ') b = input('second: ') if a > b: print(b,a) else: print ...
- python 图像库PIL详解
PIL详细文档 The most important class in the Python Imaging Library is the Image class, defined in the mo ...
- flask学习(一):环境的安装
一. 安装python2.7 从python官网下载python2.7的版本 双击python2.7,然后选择安装路径,一直下一步就可以了 设置环境变量,把python和pip的安装路径添加到PATH ...
- 五 web爬虫,scrapy模块,解决重复ur——自动递归url
一般抓取过的url不重复抓取,那么就需要记录url,判断当前URL如果在记录里说明已经抓取过了,如果不存在说明没抓取过 记录url可以是缓存,或者数据库,如果保存数据库按照以下方式: id URL加密 ...
- laravel利用composer安装
composer create-project laravel/laravel --prefer-dist blog prefer:提升,提拔 dist:距离 blog 创建的项目文件夹名称 lara ...
- SVN 的搭建及使用(二)VisualSVN Server建立版本库,以及VisualSVN和TortoiseSVN的使用
上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及VisualSVN和TortoiseSVN的 ...
- 偶然遇到的samba服务器权限问题
也许有一些参考价值. CentOS 6.4使用命令service smb start启动samba服务器,在配置文件都正确,而且对应的共享目录权限也正确,使用smbpasswd添加了用户,这之后,使用 ...
- 解决PKIX问题:unable to find valid certification path to requested target
第一步:执行方式:java InstallCert hostname eg:java InstallCert www.cebbank.com 第二步:然后输 ...
- Zookeeper集群是如何升级到新版本的
方案1:复用老数据方案 这是经过实践的升级方案,该方案是复用旧版本的数据,zk集群拓扑,配置文件都不变,只是启动的程序为最新的版本. 参考文章: Zookeeper集群是如何升级到新版本的 方案2:重 ...
- 7.usr下重要目录和文件详解
1./usr下重要目录和文件详解: /usr(存放用户安装的应用软件目录,如MySQL,Apache,这是一个非常重要的目录,类似于Windows下的Program Files目录,用户的很多应用程序 ...