C# 讀取配置檔案和修改(二)
讀取:
- string str= ConfigurationManager.AppSettings["key"];
寫入:
- Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
- configuration.AppSettings.Settings[key].Value = result;
- configuration.Save();
- ConfigurationManager.RefreshSection("appSettings");
在VS 2005中設定和讀取配置檔案已經變的很簡單了,而且是強型別的,讀取的值可以直接賦值給相應的變數,無需強制轉換。
例如:DateTime userDateTime1 = Properties.Settings.Default.userDateTime1; 真是方便了很多。但是你有沒有發現,使用 Properties.Settings.Default.Save() 儲存了設定後,Application 範圍的設定為什麼沒有儲存成功,User 範圍的設定的變化為什麼沒有體現到 app.config 檔案中去呢?
1. 在VS 2005中進行應用程式設定
開啟 專案屬性 ? 設定,如下圖:
輸入名稱,選擇型別和範圍,輸入值儲存即完成設定。
型別:int,string,DateTime等各種資料型別;
範圍:Application 範圍的設定對所有使用者都有效;
User 範圍的設定對當前使用者(當前 Windows 登入的使用者)有效,同一個設定每個使用者可以有不同的值,而且互不影響。
2. 讀取配置檔案(讀取應用程式設定)
無論是Application 範圍的設定,還是User 範圍的設定,讀取的方法都是一樣的。
- // 讀取設定
- this.appSetting1TextBox.Text = Properties.Settings.Default.appSetting1;
- this.userSetting1TextBox.Text = Properties.Settings.Default.userSetting1;
3. 儲存 User 範圍配置檔案(儲存 User 範圍的應用程式設定)
- // 儲存 User 範圍的設定
- Properties.Settings.Default.userSetting1 = this.userSetting1TextBox.Text;
- Properties.Settings.Default.Save();
User 範圍配置檔案沒有儲存在應用程式資料夾下,而是儲存在這裡:X:\Documents and Settings\Windows登入使用者\Local Settings\Application Data。
4. 儲存 Application 範圍配置檔案(儲存 Application 範圍的應用程式設定)
儲存 Application 範圍配置檔案可沒有儲存 User 範圍配置檔案那樣簡單,直接 Properties.Settings.Default.Save() 是不行的。因為 Application 範圍的設定在執行時是“只讀”的。這裡使用的方法是使用 XmlDocument 來直接儲存 config 檔案,然後在 Reload 設定。
- // 儲存 Applicationi 範圍的設定
- string configFileName = Application.ExecutablePath + ".config";
- System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
- doc.Load(configFileName);
- string configString = @"configuration/applicationSettings/SetConfig.Properties.Settings/setting[@name='appSetting1']/value";
- System.Xml.XmlNode configNode = doc.SelectSingleNode(configString);
- if (configNode != null)
- {
- configNode.InnerText = this.appSetting1TextBox.Text;
- doc.Save(configFileName);
- // 重新整理應用程式設定,這樣下次讀取時才能讀到最新的值。
- Properties.Settings.Default.Reload();
- }
順便說一下:使用 Properties.Settings.Default.Reset() 可以恢復 User 範圍設定的預設值(從 app.config 中恢復)。
這下面兩個方法也類似,摘抄下來做個備份學習:
- privatevoid SaveConfig(string ConnenctionString)
- {
- XmlDocument doc=new XmlDocument();
- //獲得配置檔案的全路徑
- string strFileName=AppDomain.CurrentDomain.BaseDirectory.ToString()+".exe.config";
- doc.Load(strFileName);
- //找出名稱為“add”的所有元素
- XmlNodeList nodes=doc.GetElementsByTagName("add");
- for(int i=0;i<nodes.Count;i++)
- {
- //獲得將當前元素的key屬性
- XmlAttribute att=nodes[i].Attributes["key"];
- //根據元素的第一個屬性來判斷當前的元素是不是目標元素
- if (att.Value=="ConnectionString")
- {
- //對目標元素中的第二個屬性賦值
- att=nodes[i].Attributes["value"];
- att.Value=ConnenctionString;
- break;
- }
- }
- //儲存上面的修改
- doc.Save(strFileName);
- }
- ==============================================================================
- publicstaticvoid SetValue(string AppKey,string AppValue)
- {
- XmlDocument xDoc = new XmlDocument();
- xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");
- XmlNode xNode;
- XmlElement xElem1;
- XmlElement xElem2;
- xNode = xDoc.SelectSingleNode("//appSettings");
- xElem1 = (XmlElement)xNode.SelectSingleNode("//add[@key='" + AppKey + "']");
- if ( xElem1 != null ) xElem1.SetAttribute("value",AppValue);
- else
- {
- xElem2 = xDoc.CreateElement("add");
- xElem2.SetAttribute("key",AppKey);
- xElem2.SetAttribute("value",AppValue);
- xNode.AppendChild(xElem2);
- }
- xDoc.Save(System.Windows.Forms.Application.ExecutablePath + ".config");
- }
相關推薦
C# 讀取配置檔案和修改(二)
讀取:string str= ConfigurationManager.AppSettings["key"]; 寫入: Configuration configuration = ConfigurationManager.OpenExeConfiguration(Confi
專案中讀取配置檔案的方式(二)
import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** 有時,需要配置檔案,配置檔案中儲存的內容是什麼 ? 儲存屬性 儲存一些經常
三大框架(ssh)學習——配置檔案詳解(二)
多配置檔案實現 專案經常需要多人協作開發,但是如果大家都是用同一個struts.xml檔案,會互相影響不利於開發的正常開展。這樣,我們可以通過<include>元素指定多個配置檔案。 可以在src下面建立多個struts配置檔案。然後再struts.xml中分別引入: str
專案中常用的讀取配置檔案的方式(一)
package com.bjpowernode.demo01; import java.util.ResourceBundle; /** ResourceBundle讀取配置檔案 @author Administrator */ public clas
【SpringBoot學習之路】06.Springboot配置檔案詳解(二)
轉載宣告:商業轉載請聯絡作者獲得授權,非商業轉載請註明出處.原文來自 © 呆萌鍾 【SpringBoot學習之路】06.Springboot配置檔案詳解(二) 配置檔案值注入 @Value獲取值和@ConfigurationProperties獲取值比較
0 httpd2.2配置詳解-Apache配置檔案詳解-(二)
httpd-2.2 15 curl命令 curl是基於URL語法在命令列方式下工作的檔案傳輸工具,它支援FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等協議。curl支援HTTPS認證,並且支援HTTP的POST、PU
effective C++筆記--定製new和delete(二)
文章目錄 編寫new和delete時需固守常規 寫了placement new也要寫 placement delete 編寫new和delete時需固守常規 . 在編寫自己的operator new和operator delete時,需要
Unix/Linux程式設計-檔案和目錄(二)
檔案和目錄(二) 4.8 更改檔案實際使用者ID和實際組ID #include <unistd.h> int chown(const char *pathname, uid_t owner, gid_t group);
【Mybatis】MyBatis配置檔案的使用(二)
本例在【Mybatis】MyBatis快速入門(一)基礎上繼續學習XML對映配置檔案 MyBatis 的配置檔案包含了會深深影響 MyBatis 行為的設定(settings)和屬性(properties)資訊。文件的頂層結構如下: configuration 配置 prop
mongo shell啟動配置檔案.mongorc.js(二)
如果你的主目錄下有個.mongorc.js檔案,那麼當你啟動shell時他就會自動執行。使用它可以初始化任何你經常使用的helper方法和你不想意外操作的刪除方法。 比如,你不想使用預設的dropDatabase()方法了,你可以在.mongorc.js檔案中新增下面的命令: 複製內容到剪貼簿 程式碼:
【Mybatis】MyBatis對錶執行CRUD操作(三) 【Mybatis】MyBatis配置檔案的使用(二)
本例在【Mybatis】MyBatis配置檔案的使用(二)基礎上繼續學習對錶執行CRUD操作 使用MyBatis對錶執行CRUD操作 1、定義sql對映xml檔案(EmployeeMapper.xml) 1 <?xml version="1.0" encoding="UTF-8"
C++學習筆記——類和物件(二)
設計一個類就是設計一個新的型別,應該考慮: 此型別的“合法值”是什麼? 此型別應該有什麼樣的函式和操作符? 新型別的物件該如何被建立和銷燬? 如何進行物件的初始化和賦值? 物件作為函式的引數如何以值傳遞? 誰將使用此型別的物件成員? 類定義的語法形式: clas
c#中配置檔案的使用(一)
在使用log4net的時候,需要自己來配置相關的檔案,之前雖然研究過如何來使用配置檔案,但是時間一久還是有點生疏,下面自己做的一些小test,也讓自己能夠有比較深的印象,在學習過程中,也在網上看到了一位大神寫的相關的內容,比較詳細,這是大神部落格關於配置檔案的地址
藍芽配置檔案和協議(總則)
L2CAP是為了對複數個連結進行管理的協議。 除了對若干個對方裝置的連結進行管理之外,對同一個裝置的若干個連結也進行管理。 對同一個裝置的若干個連結進行管理的意思是說,比方同時打開了用作SDP通訊的通道和用作RFCOMM通訊的通道,為了這些通道彼此互不干擾而將其彼此區分而進行了管理。 SDP (Serv
C語言的檔案的操作(二)
C語言的檔案的操作(二) 八.資料塊讀寫 #fread 函式是從檔案中讀出資料塊。 int fread(void *buf, int size, int count, FILE *fp); #fwrite函式是向檔案寫入資料塊。 int fwrite(void *buf
C++ XML的建立、讀取和修改(一)
跟C#不太一樣,需要呼叫一個TinyXML庫來生成XML,庫的原始碼地址為https://github.com/leethomason/tinyxml2,找到“clone or down”進行下載,,解壓之後,將tinyxml2.h 和 tinyxml2.cpp放入工程檔案中,呼
C# 用配置檔案連線資料庫(Winform和Webform)
Winform中用配置檔案連線資料庫 資料庫連線類YSqlHelper程式碼: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst
python包-numpy資料讀取和儲存(二)
目錄 0.為什麼要使用numpy儲存資料 1.儲存為二進位制檔案(.npy/.npz)並讀取 numpy.save和numpy.load numpy.savez numpy.savez_compressed 2.儲存到文字檔案 numpy.savetxt nump
CLR VIA C# 閱讀筆記和感悟(二)
GC垃圾回收:垃圾回收機制其實是對記憶體的碎片化管理,首先會暫停所有執行緒的執行,防止碎片化管理時,物件的狀態被修改,然後遍歷託管堆中的所有物件,刪除沒有變數引用的物件,並且移動堆中的所有物件的記憶體地址,刪除物件之間的空隙,變成一塊連續的記憶體,提高物件的引用效率,節省更多的記憶體空間,但這會導致
C 讀取文字檔案和C 寫文字檔案
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!