C# 配制文件不能修改吗?

问题描述

我想知道C#自带的配制文件怎么用代码更新.C#读取我己经知道了ConfigurationSettings.AppSettings["Key"].ToString();

解决方案

解决方案二:
它是个xml文件,可以通过xmldom修改。上面代码ToString()也是多余的,索引器返回的本来就是string
解决方案三:
修改很简单,你必须打开它的一个实例才行,你刚才那个方法用的是静态属性,所以不能修改。Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);config.AppSettings.Settings.Remove("Key");config.AppSettings.Settings.Add("Key","新的值");config.Save();

解决方案四:
引用2楼qldsrx的回复:

修改很简单,你必须打开它的一个实例才行,你刚才那个方法用的是静态属性,所以不能修改。C#codeConfigurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);config.AppSettings.Settings.Remove("Key");config.A……

没有尝试过,但是感觉非常不错!!谢谢三楼!!!
解决方案五:
#region修改config文件///<summary>///修改配置文件///</summary>///<paramname="key">节点名称</param>///<paramname="value">节点数据</param>publicstaticvoidSetConfigValue(stringkey,stringvalue){boolisModified=false;foreach(stringkeyExistinConfigurationManager.AppSettings){if(keyExist==key){isModified=true;}}//OpenApp.ConfigofexecutableConfigurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);//Youneedtoremovetheoldsettingsobjectbeforeyoucanreplaceitif(isModified){config.AppSettings.Settings.Remove(key);}//AddanApplicationSetting.config.AppSettings.Settings.Add(key,value);//SavethechangesinApp.configfile.config.Save(ConfigurationSaveMode.Modified);//Forceareloadofachangedsection.ConfigurationManager.RefreshSection("appSettings");}#endregion

解决方案六:
System.Configuration.ConfigurationSettings.AppSettings["Key"];但是现在FrameWork2.0已经明确表示此属性已经过时。并建议改为ConfigurationManager或WebConfigurationManager。并且AppSettings属性是只读的,并不支持修改属性值.但是要想调用ConfigurationManager必须要先在工程里添加system.configuration.dll程序集的引用。(在解决方案管理器中右键点击工程名称,在右键菜单中选择添加引用,.netTablePage下即可找到)添加引用后可以用Stringstr=ConfigurationManager.AppSettings["Key"]来获取对应的值了。更新配置文件:Configurationcfa=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);//添加cfa.AppSettings.Settings.Add("key","Name")//修改cfa.AppSettings.Settings["BrowseDir"].Value="name";最后调用cfa.Save();当前的配置文件更新成功。ConfigurationManager.RefreshSection("appSettings");//刷新命名节,在下次检索它时将从磁盘重新读取它。记住应用程序要刷新节点

参考:
解决方案七:
引用楼主zschuxin123456的回复:

我想知道C#自带的配制文件怎么用代码更新.C#读取我己经知道了ConfigurationSettings.AppSettings["Key"].ToString();

一般需要修改下那个文件的读写属性后再修改以前写的一个小方法privateboolsaveSettings(stringfilePath){System.IO.File.SetAttributes(filePath,System.IO.FileAttributes.Normal);List<AppSetting>appSettings=dgv_App.DataSourceasList<AppSetting>;List<ConnSetting>connSettings=dgv_Conn.DataSourceasList<ConnSetting>;XmlDocumentdoc=newXmlDocument();doc.Load(filePath);#region保存修改后的配置项XmlNodeappNode=doc.DocumentElement.SelectSingleNode("appSettings");if(appNode!=null){foreach(AppSettingappIteminappSettings){foreach(XmlNodeiteminappNode.ChildNodes){if(itemisXmlElement){if((itemasXmlElement).Attributes["key"].Value==appItem.Key)(itemasXmlElement).Attributes["value"].Value=appItem.Value;}}}}#endregion#region保存修改后的连接字串XmlNodeconNode=doc.DocumentElement.SelectSingleNode("connectionStrings");if(conNode!=null){foreach(ConnSettingconnIteminconnSettings){foreach(XmlNodeiteminconNode.ChildNodes){if(itemisXmlElement){if((itemasXmlElement).Attributes["name"].Value==connItem.ConnName)(itemasXmlElement).Attributes["connectionString"].Value=connItem.ConnString;}}}}#endregiondoc.Save(filePath);returntrue;}

解决方案八:
该回复于2012-02-02 09:06:44被版主删除

时间: 2024-10-24 05:40:49

C# 配制文件不能修改吗?的相关文章

移C盘Firefox配制文件小技巧

Firefox是大家常用的浏览器之一,它的配置选项非常丰富,但遗憾的是无论你将Firefox安装在哪里,它的所有配制参数,包括在地址栏输入"about:config"打开的"高级设置"参数.扩展.Cookies.浏览记录.书签等,都是保存在系统盘的.这就带来一个问题,一旦系统崩溃,重装系统后,Firefox的相关设置都将丢失,重新进行设置是一件很麻烦的事,如果你和笔者一样懒,不妨用下面这招,简单几步来一劳永逸. 1.打开"X:Documents and S

sharepoint-SharePoint 怎样开放服务器文件的修改权限?

问题描述 SharePoint 怎样开放服务器文件的修改权限? SharePoint 怎样开放服务器文件的修改权限?即服务器内的word文档,用本地的office打开了,可是只有只读权限,修改保存 会另存为文件

win8系统下host文件无法修改保存怎么办

win8系统下host文件无法修改保存怎么办          方法步骤如下: 1.host文件,路径为:C:windowssystem32driversetchosts 2.然后用notepad++打开host文件,修改后保存. 3.对于使用记事本的可以这样做,首先用管理管权限打开DOS程序.win8下同时按住winkey+x键,然后点中菜单中的"命令提示符(管理员)",打开DOS程序. 4.在打开的DOS窗口中敲入"notepad"命令回车即可以管理员权限打开记

linux中如何使用touch修改文件的修改时间

rsync有时候因为服务器时间错了,需要更改文件的修改时间时间,可以使用 touch命令来修改文件的修改时间: 1 touch -c -m -t 201101110000 teadme.txt 修改readme.txt为2011年1月11日零时零分修改 如果批量修改文件和目录,则使用 1 find /home/www/site -exec touch -c -m -t 201101110000 {} \; 即可把/home/www/site下的所有文件和目录都改变修改时间. 注意上面命令中的空格

Oracle数据库数据文件位置修改方法

 数据文件就是以dbf结尾的文件也也就是用来存储我们数据的一个文件了,此文件通常比较大所以我们一般存储在空间比较大的目录了,下面一起来看看Oracle数据库数据文件位置修改方法   如何更改Oracle数据文件的位置 A:归档模式下 1.在sqlplus中连接到要移动文件的Oracle数据库,然后执行如下SQL语句查看Oracle数据库文件位置: SQL>select file_name   from   sys.dba_data_files; FILE_NAME ---------------

PPT插入的图片能响应源图片文件的修改方法

  PPT插入的图片能响应源图片文件的修改方法?PowerPoint插入的图片能够响应源图片文件的修改,即修改源文件时插入的图片可以自动更新,那就得让它与源文件建立链接.感兴趣的朋友到下文了解一下吧. 方法/步骤 打开PowerPoint软件后,"插入"-"图片",跳出对话框 选中要插入的图片,单击对话框底部的"插入"按钮右侧的倒三角箭头,弹出下拉列表 在其中选择"链接到文件" 以上就是PPT插入的图片能响应源图片文件的修改方

host文件怎么修改

host文件怎么修改   这个两种解决方法,不仅适用于Windows 7,Windows 8以及8.1均可尝试操作,优先建议使用方案两种的方式. 方法一:使用管理员权限打开"记事本"来进行host文件编辑; 如果出现如下图的用户账户控制,我们需要点击"是". 在打开的记事本程序中打开C:WINDOWSsystem32driversetc 目录下的host文件,进行编辑保存即可. 方法二:将host文件移动到桌面上,使用记事本编辑后移动回原目录 首先如下图所示先将ho

Windows7下对hosts文件的修改

  修改HOSTS文件常用于屏蔽恶意网站.去广告,当然修改HOSTS文件还有其他的用处(大家不要用来做坏事就行了).但很多人在Windows7下修改HOSTS文件时碰到了问题,其实这是因为Win7需要以管理员身份运行记事本打开这个文件(Vista.Win2008也和Win7是一样的). HOSTS文件位于 %SYSTEMROOT%system32driversetchosts,跟Windows XP下修改HOSTS文件是一样的,用记事本打开hosts文件进行编辑即可. 具体操作方法是: 1.找到

win7系统Hosts文件无法修改

  问题情况分析: C:WINDOWSsystem32driversetc中的Hosts文件无法修改,单位局域网必须更改此文件添加IP地址,使用记事本打开此文件修改添加IP地址后无法保存. 操作步骤: 转自电脑入门到精通网 www.58116.cn 以下两个方案,不仅适用于Windows 7,Windows 8以及8.1均可尝试操作,优先建议使用方案两种的方式. 方案一:使用管理员权限打开"记事本"来进行host文件编辑; 如果出现如下图的用户账户控制,我们需要点击"是&qu