在程序開發(fā)過程中,我們一般會用到配置文件來設定一些參數(shù)。常見的配置文件格式為 ini, xml, config等。
INI
.ini文件,通常為初始化文件,是用來存儲程序配置信息的文本文件。
[Login]
#開啟加密 0:不開啟、1:開啟
open_ssl_certificate=0
.NET 框架本身不支持 INI 文件,可以利用 Windows API方法使用平臺調(diào)用服務來寫入和讀取文件。
// 要寫入的部分名稱 - sectionName
// 要設置的鍵名 - key
// 要設置的值 - value
// INI文件位置 - filepath
// 讀取是否成功 - result
[DllImport("kernel32")]
bool WritePrivateProfileString(string sectionName,string key,string value,string filepath);
// 要讀取的部分名稱 - sectionName
// 要讀取的鍵名 - key
// 如果鍵不存在返回的默認值 - default
// 接收用作緩沖區(qū)的字符串 - ReturnedVal
// 實際讀取的值 - maxsize
// INI文件位置 - filepath
[DllImport("kernel32")]
int GetPrivateProfileString(string sectionName,string key,string default,StringBuilder ReturnedVal,int maxsize,string filepath);
一般會封裝一個類來調(diào)用該API方法。
public class ReadWriteINIFile{
...
public void WriteINI(string name, string key, string value)
{
WritePrivateProfileString(name, key, value, _path);
}
public string ReadINI(string name, string key)
{
StringBuilder sb = new StringBuilder(255);
int ini = GetPrivateProfileString(name, key, "", sb, 255, _path);
return sb.ToString();
}
}
CFG
SharpConfig 是 .NET 的CFG/INI 配置文件操作組件,以文本或二進制格式讀取,修改和保存配置文件和流。
Configuration config = Configuration.LoadFromFile("login.cfg");
Section section = config["Login"];
// 讀取參數(shù)
bool isOpen = section["open_ssl_certificate"].GetValue();
// 修改參數(shù)
section["open_ssl_certificate"].Value = false;
Config
在 App.config/web.config 文件中的 configSections 節(jié)點下配置 section 節(jié)點,.NET 提供自帶的類型進行封裝。 configSections節(jié)點必須為configuration下第一個節(jié)點。
NameValue鍵值對
定義一個靜態(tài)屬性的方法獲取 Dictionary 格式的數(shù)據(jù):
///
/// NameValueCollection
///
public static Dictionary NameValueConfigNode
{
get
{
NameValueCollection nvc = (NameValueCollection)ConfigurationManager.GetSection("NameValueConfigNode");
Dictionary result = new Dictionary();
foreach (string key in nvc.AllKeys)
{
result.Add(key, nvc[key]);
}
return result;
}
}
Dictionary
///
/// Dictionary
///
public static Dictionary DictionaryConfigNode
{
get
{
IDictionary dict = (IDictionary)ConfigurationManager.GetSection("DictionaryConfigNode");
Dictionary result = new Dictionary();
foreach (string key in dict.Keys)
{
result.Add(key, dict[key].ToString());
}
return result;
}
}
SingTag
///
/// SingleTag
///
public static Dictionary SingleTagConfigNode
{
get
{
Hashtable dict = (Hashtable)ConfigurationManager.GetSection("SingleTagConfigNode");
Dictionary result = new Dictionary();
foreach (string key in dict.Keys)
{
result.Add(key, dict[key].ToString());
}
return result;
}
}
自定義配置文件
如果配置文件很多,可以單獨定義配置文件,然后在 App.config/Web.config 文件中聲明。
自定義文件 MyConfigFile.config 內(nèi)容:
XML
XML文件常用于簡化數(shù)據(jù)的存儲和共享,它的設計宗旨是傳輸數(shù)據(jù),而非顯示數(shù)據(jù)。對于復雜不規(guī)則的配置信息也可以用XML文件進行存儲。
// 讀取文件
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("myfile.xml");
// 根節(jié)點
var nodeRoot = xmlDoc.DocumentElement;
// 創(chuàng)建新節(jié)點
XmlElement studentNode = xmlDoc.CreateElement("student");
// 創(chuàng)建新節(jié)點的孩子節(jié)點
XmlElement nameNode = xmlDoc.CreateElement("name");
// 建立父子關(guān)系
studentNode.AppendChild(nameNode);
nodeRoot.AppendChild(studentNode);
審核編輯:劉清
-
net
+關(guān)注
關(guān)注
0文章
126瀏覽量
56253 -
.Net框架
+關(guān)注
關(guān)注
0文章
2瀏覽量
5693 -
存儲IC
+關(guān)注
關(guān)注
0文章
8瀏覽量
9881
發(fā)布評論請先 登錄
相關(guān)推薦
labview調(diào)用.net dll文件的問題
請問有哪位吧友知道,當我調(diào)用.net時會降低硬件讀取或者寫入數(shù)據(jù)速率嗎?
怎么讀取和寫入* .umd文件格式?
使用VB net ReadLine讀取指定行文本的方法說明
![使用VB <b class='flag-5'>net</b> ReadLine<b class='flag-5'>讀取</b>指定行文本的方法說明](https://file.elecfans.com/web1/M00/A4/4B/o4YBAF1jMm6ALCEkAABpEAFLAFM782.png)
.NET應用程序可以直接調(diào)用WebAssembly模塊了
LabVIEW的表格寫入和讀取程序和工程文件免費下載
![LabVIEW的表格<b class='flag-5'>寫入</b>和<b class='flag-5'>讀取</b>程序和工程<b class='flag-5'>文件</b>免費下載](https://file.elecfans.com/web1/M00/C6/A7/o4YBAF9hyaCAeEEMAAJIwcOqk_8660.png)
使用閃存讀取和寫入數(shù)據(jù)
![使用閃存<b class='flag-5'>讀取</b>和<b class='flag-5'>寫入</b>數(shù)據(jù)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論