更改App.config里的值并保存

using System;

using System.Collections.Generic;

using System.Configuration;

using System.IO;

using System.Linq;

using System.Reflection;

using System.Text;

using System.Threading.Tasks;

using System.Xml;

namespace HandPickCrawlerDB.Extensions

{

public class AppHelper

{

private static string _appconfig = null;

public static string AppConfig

{

get

{

if (_appconfig == null)

{

Type t = typeof(System.Configuration.ConfigurationManager).Assembly.GetType("System.Configuration.ClientConfigurationHost");

object cfghst = Activator.CreateInstance(t, true);

PropertyInfo pi = t.GetProperty("ConfigPaths", BindingFlags.Instance | BindingFlags.NonPublic);

object cfgpath = pi.GetValue(cfghst, null);

Type t1 = typeof(System.Configuration.ConfigurationManager).Assembly.GetType("System.Configuration.ClientConfigPaths");

pi = t1.GetProperty("ApplicationConfigUri", BindingFlags.Instance | BindingFlags.NonPublic);

string path = (string)pi.GetValue(cfgpath, null);

if (string.IsNullOrEmpty(path))

_appconfig = string.Empty;

else

_appconfig = path.Replace(".vshost.", ".");

}

return _appconfig;

}

set

{

_appconfig = value;

}

}

public static void SetSettingToAppConfig(string key, string value)

{

if (string.IsNullOrEmpty(key))

{

throw new Exception("key not be null");

}

else

{

key = key.Trim();

}

if (string.IsNullOrEmpty(value))

value = "";

else

value = value.Trim();

if (!File.Exists(AppConfig))

{

throw new DirectoryNotFoundException();

}

File.SetAttributes(AppConfig, FileAttributes.Normal);

XmlDocument xmldoc = new XmlDocument();

xmldoc.Load(AppConfig);

XmlNodeList xmllst = xmldoc.SelectNodes("/configuration/appSettings/add");

if (xmldoc.SelectSingleNode("/configuration/appSettings") == null)

{

XmlNode n2 = xmldoc.CreateNode("element", "appSettings", "");

n2.InnerXml = "<add key=\"" + key + "\" value=\"" + value + "\"/>";

xmldoc.SelectSingleNode("/configuration").AppendChild(n2);

xmldoc.Save(AppConfig);

}

else if (xmllst.Count == 0)

{

XmlNode n2 = xmldoc.CreateNode("element", "add", "");

XmlAttribute xa = xmldoc.CreateAttribute("key");

xa.Value = key;

n2.Attributes.Append(xa);

xa = xmldoc.CreateAttribute("value");

xa.Value = value;

n2.Attributes.Append(xa);

xmldoc.SelectSingleNode("/configuration/appSettings").AppendChild(n2);

xmldoc.Save(AppConfig);

}

else

{

bool existed = false;

foreach (XmlNode n1 in xmllst)

{

if (n1.Attributes["key"].Value.ToUpper() == key.ToUpper())

{

n1.Attributes["value"].Value = value;

xmldoc.Save(AppConfig);

existed = true;

break;

}

}

if (!existed)

{

XmlNode xmlnd = xmldoc.SelectSingleNode("/configuration/appSettings");

XmlNode n2 = xmldoc.CreateNode("element", "add", "");

XmlAttribute xa = xmldoc.CreateAttribute("key");

xa.Value = key;

n2.Attributes.Append(xa);

xa = xmldoc.CreateAttribute("value");

xa.Value = value;

n2.Attributes.Append(xa);

xmlnd.AppendChild(n2);

xmldoc.Save(AppConfig);

}

}

ConfigurationManager.RefreshSection("appSettings");

}

}

}

时间: 2024-11-15 12:54:19

更改App.config里的值并保存的相关文章

.net里面&lt;app.config&gt;中value值不能填写特殊符号问题

.net里面<app.config>中value值不能填写特殊符号问题,不然会有浪线提示报错 配置app.config或web.config的时候,经常要填写value值, 但是value值不能包含特殊字符,需要转义, 分享一下转义字符 App.config 实际上是 xml 文件,在标准 xml 文件中特殊字符要进行 HTML 转义. 规则如图: 原文地址:https://www.cnblogs.com/kelly1314/p/12133043.html

winform程序读取和改写配置文件App.config元素的值

在开发Web项目的时候,会有一个配置文件Web.config,用来存放一些全局的变量,如连接数据库用的字符串.相应的,在开发winform程序时,也有一个配置文件,它就是App.config,这个文件的作用与Web.config大致相同,也可以用来存放程序所用的全局变量及Value值. 来看一个app.config文件的例子: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighl

更改app.config配置文件的方法

1.修改appSettings设置 Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);            var setUrl = config.AppSettings.Settings["ApiAddress"];            if (setUrl==null)            {                config.A

c#app.config 与 Settings.settings

本篇博客将介绍C#中Settings的使用. 首先介绍一个桌面程序中的例子,当我们新安装一个软件,软件启动后会有例如新手指导等窗体弹出来,每次都需要自己去关闭它.当然这些软件都会提供例如不再显示等功能.当选择不再显示功能后,这些窗体以后再也不显示了. 对于这些设置,可以采用下面的一些方法来存储,自定义XML文件,注册表,当然还可以是C#中自带的Settings文件.推荐使用Settings文件.注册表轻易不要使用,自定义XML在使用时需要解析,可以当备选方案. 下面通过一个例子来展示, 新建一个

C#的配置文件App.config使用总结 - 转

http://blog.csdn.net/celte/article/details/9749389 首先,先说明,我使用的app.config 配置文件的格式如下: [html] view plaincopyprint? <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="ServerIP" va

.NET Core项目修改project.json来引用其他目录下的源码等文件的办法 &amp; 解决多框架时 project.json 与 app.config冲突的问题

作者: zyl910 一.缘由 项目规模大了后,经常会出现源码文件分布在不同目录的情况,但.NET Core项目默认只有项目目录下的源码文件,且不支持“Add As Link”方式引入文件.这时需要手工修改project.json文件了. 可能是因为最新版本已将 project.json 转为 .csproj,导致我花了一些功夫才找到配置办法,故写了这篇笔记. 二.引用其他目录下的源码等文件的办法 2.1 官网说明 官网的 project.json 和 csproj 属性之间的映射 里简单介绍了

更改windows服务的配置文件(app.config)必须重启服务才能生效吗?

这个问题是前一阶段写windows服务碰到的.本来在写获取配置文件的某个配置的值的时候,通常我都是写类似下面的这么一个静态方法来获取: 1: /// <summary> 2: /// 获取每次处理记录数 3: /// </summary> 4: /// <returns></returns> 5: private static int GetRecordCount() 6: { 7: int recordCount = 10000; 8: try 9: {

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

1: /// <summary> 2: /// 修改web.config或app.config文件appSettings配置节中的Add里的value属性 3: /// </summary> 4: /// <remarks> 5: /// 注意,调用该函数后,会使整个Web Application重启,导致当前所有的会话丢失 6: /// </remarks> 7: /// <param name="key">要修改的键key

Winform後台如何動態修改App.config文件里的內容

以下方法修改的,自己添加的app.config裡面不會顯示出修改的東西. 方法一:通過使用System.Xml.XmlDocument對象的方法進行bin\debug\~.vshost.exe.Config裡面的配置修改.(這種方法在程式下次啟動時才會生效,直到你清除項目重建 或是重新手動修改才會恢復為你自己寫的配置信息) public static void SetValue(string AppKey, string AppValue)        {            System.