VS C#工程三【使用配置文件保存應用程序裏的配置數據】[Resources找不到]

SYD8801是一款低功耗高性能藍牙低功耗SOC,集成了高性能2.4GHz射頻收發機、32位ARM Cortex-M0處理器、128kB Flash存儲器、以及豐富的數字接口。SYD8801片上集成了Balun無需阻抗匹配網絡、高效率DCDC降壓轉換器,適合用於可穿戴、物聯網設備等。具體可諮詢:http://www.sydtek.com/

 

使用配置文件保存應用程序裏的配置數據

 

本文摘錄於:https://blog.csdn.net/weixin_41221000/article/details/82285554這裏只是做學習備份之用,絕無抄襲之意,如果作者覺得有所不妥請聯繫本人,一定妥當處理!同時這裏望閱讀者查看原文章!

引言

我不知大家早先是如何保存應用程序配置,以備下次打開時使用的,反正我開始學.Net的時候就去研究序列化,以二進制或XML格式的序列化來保存應用程序配置。這樣每次都要建立單獨的配置類,並書寫讀寫配置代碼,相當麻煩。

期間也看了看.config文件的讀寫方式,感覺還是很麻煩,不如自己序列化來的踏實。

後來才猛然發現微軟早提供好了settings,用以定義.config文件內容,並生成相應的強類型類,使用起來極其方便~,感覺就像在火星居住了半輩子突然發現還有地球這好地方*_*~

鑑於網上settings方面的資料不多、不詳,我就以此文來介紹一下基本的用法,讓小鳥們少走我那條破路,老鳥請直接從上空滑翔而過即可。

 

基本使用方法

首先建立一個WinForm項目,設計這樣一個窗體:

image

通過“添加新項”功能添加一個MyApp.settings:

 image

 

 

 

在打開的數據表格中做如下設置:

image

這樣就設置好了a、b、c三個不同類型的配置變量,現在就可以在程序中使用它們了:

 

private void Form1_Load(object sender, EventArgs e)

{

    numericUpDown1.Value = MyApp.Default.a;

    textBox1.Text = MyApp.Default.b;

    checkBox1.Checked = MyApp.Default.c;

}

 

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

    MyApp.Default.a = numericUpDown1.Value;

    MyApp.Default.b = textBox1.Text;

    MyApp.Default.c = checkBox1.Checked;

    MyApp.Default.Save();

}

 

通過上面的代碼就可以在窗體開閉時分別加載、保存配置了。

運行抓圖:

image

 

複雜數據類型支持情況

settings支持存儲一些較爲複雜的數據,比如Color、Size等類型,可以自行選擇:

image

但並不是所有類型都可以支持,比如FileInfo類型就沒有,泛型也沒有,自定義類型更是不受支持的,如果需要存儲這些特殊類型,就得用其他配置方案了。

 

讀寫複雜數據類型

我們以ArrayList類型爲例,通過它在原程序的基礎上實現記錄每次關閉程序時間的功能。

首先添加一個配置變量d,其類型爲System.Collections.ArrayList:

image

在窗體中增加一個ListBoxt,然後修改後臺代碼爲:

image

高亮部分爲新增的代碼。

多次運行以測試:

image

 可以看到每次的程序關閉時間都被記錄並顯示。

 

“用戶”和“應用程序”

你可能注意到數據表格中“範圍”這裏全是“用戶”:

image

如果改成另外一個選項,即“應用程序”會怎樣呢?

image

報錯了,我們的配置變量變成只讀的了,所以這裏可以簡單地把它們理解爲:

用戶=可讀寫

應用程序=只讀

“應用程序”選項應當是用於設定一些程序運行所必須的重要變量,比如導航網址、數學運算參數等,這些配置項如果讓用戶篡改就會出問題了,所以要只讀。

 

數據被存在哪裏?

你可能會發現編譯後在Debug目錄中有個“SettingTest.exe.config”,但無論如何操作程序,這個配置文件裏始終都是描述的默認配置。

其實數據是被存在了“C:\Users\SkyD\AppData\Local\”目錄中(我這是Windows7,XP或以下版本可能不是這裏)

我在“C:\Users\SkyD\AppData\Local\SettingTest\SettingTest.vshost.exe_Url_ffofch2tvz5bil2xbhdayqbnqwppy2ce\1.0.0.0”這個目錄中找到了配置文件(user.config),這是其描述的配置信息:

image

 

結語

雖然settings無法實現對一些複雜類型及自定義類型的支持,但是在多數情況下,用它來存儲程序配置已是綽綽有餘了,在夠用的前提下,不要重複造輪子啦。

 

 

Resources找不到

在下面的位置添加圖片就好:

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章