1、定義
在Settings.settings文件中定義配置字段。把作用范圍定義為:User則運行時可更改(用戶范圍的字段數據更改存儲在用戶信息中,不在該程序文件中),Applicatiion則運行時不可更改。可以使用數據網格視圖(VS軟件的Properties 下面的Setting.settings設置即可),很方便;
2、讀取配置值
text1.text = Properties.Settings.Default.FieldName;
//FieldName是你定義的字段
3、修改和保存配置
Properties.Settings.Default.FieldName = “server”;
Properties.Settings.Default.Save();//使用Save方法保存更改
示例部分:
VS界面圖:
重新生成方案之后的App.Config文件:
代碼部分:
public partial class MainWindow : Window
{public MainWindow(){InitializeComponent();}private void Button_Click(object sender, RoutedEventArgs e){//軟件版本號string Version = Application.ResourceAssembly.GetName().Version.ToString();Console.WriteLine(Version);//測試Settings內設置的字段值--讀取string str1= Properties.Settings.Default.CashColor;MessageBox.Show(str1);Properties.Settings.Default.CashColor = "serverBack";Properties.Settings.Default.Save();//使用Save方法保存更改}
}
配置變更信息保存路徑(用戶信息):
已經Save了,你可能會在應用程序文件夾里找不到它到底保存到哪里去了。由于我們是用UserScope的,所以其實該配置信息是保存到了你的Windows的個人文件夾里去了
4、也可以自己創建
創建一個配置類FtpSetting。在WinForm應用程序里,一切配置類都得繼承自 ApplicationSettingsBase 類。
sealed class FtpSettings : ApplicationSettingsBase
{
[UserScopedSetting]
[DefaultSettingValue(“127.0.0.1”)]
public string Server
{
get { return (string)this[“Server”]; }
set { this[“Server”] = value; }
}
[UserScopedSetting]
[DefaultSettingValue(“21”)]
public int Port
{
get { return (int)this[“Port”]; }
set { this[“Port”] = value; }
}
}
使用上述配置類,可以用:
private void button2_Click(object sender, EventArgs e)
{
FtpSettings ftp = new FtpSettings();
string msg = ftp.Server + “:” + ftp.Port.ToString();
MessageBox.Show(msg);
}
我們在使用上述FtpSetting 配置時,當然要先進行賦值保存,然后再使用,后面再修改,再保存,再使用。
private void button2_Click(object sender, EventArgs e)
{
FtpSettings ftp = new FtpSettings();
ftp.Server = “ftp.test.com”;
ftp.Port = 8021;
ftp.Save();
ftp.Reload();
string msg = ftp.Server + “:” + ftp.Port.ToString();
MessageBox.Show(msg);
}
嗯。已經Save了,你可能會在應用程序文件夾里找不到它到底保存到哪里去了。由于我們是用UserScope的,所以其實該配置信息是保存到了你的Windows的個人文件夾里去了。比如我的就是 C:\Documents and Settings\brooks\Local Settings\Application Data\TestWinForm目錄了。
5.關于Settings 配置與App.config文件之間關系
一個Setting有4個屬性Name,Type,Scope,Value。重點講一下Scope屬性,Scope屬性有兩個值Application,User。
這兩者區別:
Scope值為Application(應用程序)時,對應的Setting在運行時不可以修改。
Scope值為User(用戶)時,對應的Setting在運行時可以修改。
Setting保存位置:當程序編譯后,Setting的值保存在.exe.config文件中,例如:
其中,Settings里的屬性根據范圍分為兩種 “用戶”和“應用程序”(其中:應用程序級配置是只讀的,而用戶級是可讀寫的。)
范圍為“應用程序”的屬性,讀取都是從APP.CONFIG里獲取,設置也可以通過手工修改App.config改變,但是在程序中無法對其進行賦值,只能讀取。
而范圍為“用戶”的屬性 Settings 在第一次運行時會讀取App.config里的初始值
但是一旦調用Save方法后,Settings里“用戶”范圍的屬性就會保存在系統里面,類似WebForm里的Cookies一樣
從此以后,讀取都會從系統里保存的值里讀取,手工修改App.config里的“用戶”范圍的屬性不會影響到這些屬性,但是在調用Reset方法時會從新從App.config里獲取“用戶”范圍的屬性寫入到系統中。
也就是說,settings里“用戶”范圍的屬性總共有3個地方存儲。
1、app.config配置文件-----程序第一次運行,之前程序未調用save(),在系統中找不到就會從這里獲取
2、操作系統--------當settings調用save()保存后。
3、內存----程序啟動后,實例化settings對象,該實例在創建的時候從系統(如果系統中沒有就如前面提到的從配置文件中獲取)讀取在內存中。
一旦我們通過VC#給它添加值后,在工程目錄下會生成一個 app.config 文件。
————————————————
版權聲明:本文為CSDN博主「@Crazy Snail」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/BlueCapt/article/details/130617943