获取

获取应用程序exe.config文件中  节点value值

/// <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值");

修改

上面是方法:

修改应用程序exe.config文件及App.config中 节点value值

/// <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文件的动态配置的更多相关文章

  1. 关于 App.config文件出错,配置系统未能初始化。 问题解决方案

    如果配置文件中包含 configSections 元素,则 configSections 元素必须是 configuration 元素的第一个子元素.将appSettings放到configSecti ...

  2. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  3. 修改和获取web.config或app.config文件appSettings配置节中的Add里的value属性 函数

    1: /// <summary> 2: /// 修改web.config或app.config文件appSettings配置节中的Add里的value属性 3: /// </summ ...

  4. winform客户端程序实时读写app.config文件

    新接到需求,wcf客户端程序运行时,能实时修改程序的打印机名称: 使用XmlHelper读写 winform.exe.config文件修改后始终,不能实时读取出来,查询博客园,原来已有大神解释了: 获 ...

  5. C#中App.config文件配置获取

    最新的framework使用如下方法: using System.Configuration; ConfigurationManager.AppSettings["key"]; A ...

  6. C#项目实例中读取并修改App.config文件

    C#项目是指一系列独特的.复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间.预算.资源限定内,依据规范完成.项目参数包括项目范围.质量.成本.时间.资源. 1. 向C#项目实 ...

  7. C# App.config文件的使用

    App.config文件 1. 配置文件概述: 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序 ...

  8. WPF程序中App.Config文件的读与写

    WPF程序中的App.Config文件是我们应用程序中经常使用的一种配置文件,System.Configuration.dll文件中提供了大量的读写的配置,所以它是一种高效的程序配置方式,那么今天我就 ...

  9. C#项目中关于多个程序集下App.config文件的问题

    在项目中我们会经常用到App.config文件,有的是自动生成的,比如引用webservice.wcf服务时生成:也有手动建立的配置文件直接默认名就为app.config.这些配置有的保存当前程序集用 ...

随机推荐

  1. 换手率的公司使用MQTT的框架

    向换手率公司学习.该公司貌似也使用 Golang

  2. 循环调用MAIN

    --单位转移录入declare oi_errcode integer; oc_errtext varchar2(100);begin for p in (select * from ssunitinf ...

  3. Oracle EBS R12 电子技术参考手册 - eTRM (电子文档)

    http://etrm.oracle.com/pls/etrm/etrm_search.search

  4. IDEA14下多jdk编译时,enum不支持;多个project共用在一个workplace下每个module时引用外部包

    idea多个工程如何在一个项目中管理: 把多个多个项目放在一个叫work目录下,那么打开IntelliJ IDEA编译器,点击菜单 File->Open...,选择刚刚的work目录,即可. 在 ...

  5. 用oop分析场景,写出代码。房间里,有人、猫、老鼠在睡觉,然后猫醒了发出叫声,叫声惊醒了人,人从床上坐起来,惊醒了老鼠,老鼠开始逃跑。

    首先分析有哪些类: 应该有房子.动物类.人类.猫类.老鼠类. 房子不仅仅是一个容器,因为猫在房子里叫,惊醒了人和老鼠,所以猫叫是一个事件,通过这个事件触发人和老鼠的惊醒. 可以定义一个委托,利用委托绑 ...

  6. 解决 Android SDK下载和更新失败“Connection to https://dl-ssl.google.com refused."

    缘由: 更新sdk,遇到了更新下载失败问题: Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml Fetch ...

  7. cpp异常详解

    1. 异常介绍 在函数在执行过程中如果碰到对错误的处理可以有两种方式, 1. 返回错误,2. 使用异常. 如果作为函数的调用者想要知道具体的错误信息, 就需要维护一套错误列表, 或者用string类型 ...

  8. 二、Java基础--02

    作为本人首篇黑马技术博客有必要交代一下背景.个人理解博客的用作在于于己在于交流,于他在于学习,在交流学习中共同成长.下面进入正题.本文主要是介绍在做黑马入门测试时的一些问题(这个应该不是泄露题库吧). ...

  9. 介绍Android HAL的一篇好文章

    从Linux driver到HAL再到JNI再到Java都讲了一个遍,算是对HAL有一个基本的了解了,其中hw_module_t的设计非常巧妙,每个module都会有自己的特定函数,而HAL是不知道的 ...

  10. Stylish: http://bbs.csdn.net/topics/

    [id^=google_ads_], [id^=bd_ad_], #cpro_u2392825, [id^=BAIDU_SSP_], .bbs_top_ad, .csdn-toolbar, #topi ...