winform app.config文件的动态配置
获取
/// <summary>
/// 功能: 读取应用程序exe.config文件中
/// appSettings节点下 节点add属性值
/// 根据add的属性值key来读取value值
/// </summary>
/// <param name="appKey">属性key值</param>
/// <returns></returns>
public string GetConfigValue(string appKey)
{
XmlDocument xDoc = new XmlDocument();
try
{
//System.Windows.Forms.Application.ExecutablePath可执行文件路径(包括执行文件名称)
//加载文件
xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");
XmlNode xNode;
XmlElement xElem;
//选取appSettings节点
xNode = xDoc.SelectSingleNode("//appSettings");
//根据key属性值appKey选择节点
xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']");
if (xElem != null)
//返回value属性值
return xElem.GetAttribute("value");
else
return "";
}
catch (Exception)
{
return "";
}
}
上面是方法:
下面为调用:
GetConfigValue("key值");
修改
上面是方法:
/// <summary>
/// 功能:动态配置app.config
/// </summary>
/// <param name="AppKey">节点属性key值</param>
/// <param name="AppValue">节点属性value值</param>
private void SetValue(string AppKey, string AppValue)
{
for (int i = 0; i < 2; i++)
{
XmlDocument doc = new XmlDocument();
doc.Load(AppConfig(i));
XmlNode node = doc.SelectSingleNode(@"//appSettings");
XmlElement ele = (XmlElement)node.SelectSingleNode(@"//add[@key='" + AppKey + "']");
ele.SetAttribute("value", AppValue);
doc.Save(AppConfig(i));
}
}
/// <summary>
/// 功能:重置数据库connectionStrings连接字符串
/// 时间:2013年12月31日11:09:57
/// </summary>
/// <param name="strKey">节点属性name值</param>
/// <param name="strValue">节点属性connectionString值</param>
/// <returns></returns>
private void WriteXml(string strKey, string strValue)
{
//循环2次
//分别修改App.config及应用程序exe.config connectionStrings节点值
for (int i = 0; i < 2; i++)
{
XmlDocument doc = new XmlDocument();
doc.Load(AppConfig(i));
XmlNode node = doc.SelectSingleNode(@"//connectionStrings");
XmlElement ele = (XmlElement)node.SelectSingleNode(@"//add[@name='" + strKey + "']");
ele.SetAttribute("connectionString", strValue);
doc.Save(AppConfig(i));//保存
}
}
/// <summary>
/// 功能:获取配置文件路径
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public string AppConfig(int i)
{
if (i == 0)//获取应用程序目录下App.config路径
{
int intPos = Application.StartupPath.Trim().IndexOf("bin") - 1;
string strDirectoryPath = System.IO.Path.Combine(Application.StartupPath.Substring(0, intPos), "App.config");
return strDirectoryPath;
}
else//获取应用程序exe目录 如:MultiThreadDemo.exe.config目录路径
{
return System.Windows.Forms.Application.ExecutablePath + ".config";
}
}
下面为调用:
winform app.config文件的动态配置的更多相关文章
- 关于 App.config文件出错,配置系统未能初始化。 问题解决方案
如果配置文件中包含 configSections 元素,则 configSections 元素必须是 configuration 元素的第一个子元素.将appSettings放到configSecti ...
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...
- 修改和获取web.config或app.config文件appSettings配置节中的Add里的value属性 函数
1: /// <summary> 2: /// 修改web.config或app.config文件appSettings配置节中的Add里的value属性 3: /// </summ ...
- winform客户端程序实时读写app.config文件
新接到需求,wcf客户端程序运行时,能实时修改程序的打印机名称: 使用XmlHelper读写 winform.exe.config文件修改后始终,不能实时读取出来,查询博客园,原来已有大神解释了: 获 ...
- C#中App.config文件配置获取
最新的framework使用如下方法: using System.Configuration; ConfigurationManager.AppSettings["key"]; A ...
- C#项目实例中读取并修改App.config文件
C#项目是指一系列独特的.复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间.预算.资源限定内,依据规范完成.项目参数包括项目范围.质量.成本.时间.资源. 1. 向C#项目实 ...
- 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.这些配置有的保存当前程序集用 ...
随机推荐
- SQL Server ->> EXECUTE AS LOGIN/USER和Revert表达式
EXECUTE AS LOGIN/USER和Revert表达式都是从SQL Server 2005就有.Revert的作用是用于切换当前过程的执行上下文返回上一个EXECUTE AS 语句发生之前的安 ...
- SQL Nexus
在前面的SQLdiag系列中有提到SQLNexus,当时我们用SQLNexus查看了Perfmon Summary(性能计数器).ReadTrace Reports(跟踪文件)两项报表.SQLNexu ...
- thttpd和cgilua安装与运行流程分析
安装 参考如下博文安装thttpd软件 http://blog.csdn.net/21aspnet/article/details/7045845 http://blog.csdn.net/drago ...
- css3渐变色彩
CSS3 Gradient 分为线性渐变(linear)和径向渐变(radial).由于不同的渲染引擎实现渐变的语法不同,这里我们只针对线性渐变的 W3C 标准语法来分析其用法,其余大家可以查阅相关资 ...
- 使用回车键代替TAB键 需jquery1.4.2版本
1 $(document).ready(function () { 2 $(':input:text:first').focus(); 3 $(':input:enabled').addClass(' ...
- android 多点
引用:http://blog.163.com/fenglang_2006/blog/static/13366231820108205274325/ 第一章摘要 在Linux内核支持的基础上,Andro ...
- Repeater嵌套绑定Repeater
前台Html代码 <asp:Repeater runat="server" ID="rpList" OnItemDataBound="rpLis ...
- Azure web role, work role 以及其他role
Azure web role, work role 以及其他role 如果没有创建过web role 和work role的话可以参考如下文章来创建一下web role 和work role. htt ...
- [转] GitHub上README.md教程
点击阅读原文 最近对它的README.md文件颇为感兴趣.便写下这贴,帮助更多的还不会编写README文件的同学们. README文件后缀名为md.md是markdown的缩写,markdown是一种 ...
- iOS中Block的基础用法
本文简介 本章不会对Block做过多的实现研究.只是讲解基本的用法.纯粹基础知识.结合实际项目怎么去做举例.Block使用场景,可以在两个界面的传值,也可以对代码封装作为参数的传递等.用过GCD就知道 ...