C#的 Settings.Settings配置文件的使用方法

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39861.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39861.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39861.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

常見的Redux問題

在React中使用Redux的面試題目通常涵蓋了Redux的基本概念、工作原理、如何在React應用中集成Redux等方面。以下是一些常見的Redux問題: Redux的核心概念: 1、什么是Redux?它解決了什么問題? 它是一個狀態管理庫,解決…

2023國賽數學建模思路 - 復盤:校園消費行為分析

文章目錄 0 賽題思路1 賽題背景2 分析目標3 數據說明4 數據預處理5 數據分析5.1 食堂就餐行為分析5.2 學生消費行為分析 建模資料 0 賽題思路 (賽題出來以后第一時間在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 賽題背景 校園一卡通是集…

個保新標 | 《信息安全技術 敏感個人信息處理安全要求》(征求意見稿)發布

8 月 9 日,全國信息安全標準化技術委員會公開發布關于國家標準《信息安全技術 敏感個人信息處理安全要求》(征求意見稿)(以下簡稱《標準》)的通知,面向社會廣泛征求意見。 《標準》的制定背景是為支撐《個人…

《Go 語言第一課》課程學習筆記(一)

配好環境:選擇一種最適合你的 Go 安裝方法 選擇 Go 版本 一般情況下,建議采用最新版本。因為 Go 團隊發布的 Go 語言穩定版本的平均質量一直是很高的,少有影響使用的重大 bug。可以根據不同實際項目需要或開源社區的情況使用不同的版本。 有…

攻擊LNMP架構Web應用

環境配置(centos7) 1.php56 php56-fpm //配置epel yum install epel-release rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm//安裝php56,php56-fpm及其依賴 yum --enablereporemi install php56-php yum --enablereporemi install php…

常見的字符編碼有哪些?有什么區別?

目錄 面試回答 知識擴展 Unicode 和 UTF-8 有啥關系? 有了 UTF-8,為什么要出現 GBK 為什么會出現亂碼 面試回答 就像電報只能發出“滴”和“答”聲一樣,計算機只認為 0 和1 兩種字符,但是,人類的文字是多種多樣的&…

B樹和B+樹區別

B樹和B樹的區別 B樹 B樹被稱為平衡樹,在B樹中,一個節點可以有兩個以上的子節點。B樹的高度為log M N。在B樹中,數據按照特定的順序排序,最小值在左側,最大值在右側。 B樹是一種平衡的多分樹,通常我們說m階…

什么是網絡地址轉換 (NAT)

網絡地址轉換(NAT)是更改源和目標 IP 地址和端口的過程,地址轉換減少了對 IPv4 公共地址的需求,并隱藏了專用網絡地址范圍,該過程通常由路由器或防火墻完成。 NAT是如何工作的 NAT 允許單個設備(如路由器…

rhel 8.7 部署 keepalived+haproxy 實現 mysql 雙主高可用場景

文章目錄 [toc]部署 mysql關閉防火墻關閉 selinux創建相關目錄創建 mysql 用戶配置 PATH 變量驗證 mysql 命令切換到 mysql 用戶在 172.72.0.116 生成配置文件在 172.72.0.137 生成配置文件mysql 初始化啟動 mysql 服務修改 mysql 的 root 用戶密碼配置主從關系172.72.0.137 配…

數字化格局下的引領者:百望云通過強制性國家標準GB18030-2022最高級別認證

8月1日,強制性國家標準GB 18030-2022《信息技術 中文編碼字符集》實施。8月15日,百望云“綠頁閱讀器”正式通過中國電子技術標準化研究院強制性國家標準GB18030-2022《信息技術 中文編碼字符集》最高級(實現級別3)認證,彰顯了百望云在數字化信息處理領域對標國家標準的卓越技術…

Android CameraX適配Android13的踩坑之路

AndroidCameraX適配Android13的踩坑之路 前言: 最近把AGP插件升級到8.1.0,新建項目的時候目標版本和編譯版本都是33,發現之前的demo使用Camerax拍照和錄像都失敗了,于是查看了一下官網和各種資料,找到了Android13的適…

網絡編程(12): TCP重傳、滑動窗口、流量控制、擁塞控制

1、TCP重傳機制 通過序列號和確認號確保可靠傳輸,當發送端發送數據給接收到,接收端會返回一個確認號,表示收到消息了 超時重傳:沒有在指定時間內收到ACK報文 超時重傳的兩種可能:數據包丟失、確認包丟失超時重傳時間RT…

第十三課:QtCmd 命令行終端應用程序開發

功能描述:開發一個類似于 Windows 命令行提示符或 Linux 命令行終端的應用程序 一、最終演示效果 QtCmd 不是因為它是 Qt 的組件,而是采用 Qt 開發了一個類似 Windows 命令提示符或者 Linux 命令行終端的應用程序,故取名為 QtCmd。 上述演示…

FreeMarker系列--list的用法(長度,遍歷,下標,嵌套,排序)

原文網址&#xff1a;FreeMarker系列--list的用法&#xff08;長度,遍歷,下標,嵌套,排序&#xff09;_IT利刃出鞘的博客-CSDN博客 簡介 本文介紹FreeMarker的list的用法。 大小 Java ArrayList<String> list new ArrayList<String>(); Freemaker ${list?s…

W5500-EVB-PICO 做UDP Server進行數據回環測試(七)

前言 前面我們用W5500-EVB-PICO 開發板在TCP Client和TCP Server模式下&#xff0c;分別進行數據回環測試&#xff0c;本章我們將用開發板在UDP Server模式下進行數據回環測試。 UDP是什么&#xff1f;什么是UDP Server&#xff1f;能干什么&#xff1f; UDP (User Dataqram P…

圖數據庫_Neo4j學習cypher語言_使用CQL命令002_刪除節點_刪除屬性_結果排序Order By---Neo4j圖數據庫工作筆記0006

然后我們再來看如何刪除節點 可以看到首先 我們這里 比如我要刪除張三 可以看到 match (n:student) where n.name = "張三" delete n 這樣就是刪除了student集合中,name是張三的節點 然后我們再來看 如何來刪除關系 match (n:student)-[r]->(m:student) where…

機器學習、cv、nlp的一些前置知識

為節省篇幅&#xff0c;不標注文章來源和文章的問題場景。大部分是我的通俗理解。 文章目錄 向量關于向量的偏導數&#xff1a;雅可比矩陣二階導數矩陣&#xff1a;海森矩陣隨機變量隨機場伽馬函數beta分布數學術語坐標上升法協方差訓練集&#xff0c;驗證集&#xff0c;測試集…

Nginx的安裝及負載均衡搭建

一.Nginx的安裝 1&#xff09;準備安裝環境 yum install -y make gcc gcc-c pcre-devel pcre zlib zlib-devel openssl openssl-develPERE PCRE(Perl Compatible Regular Expressions)是一個Perl庫&#xff0c;包括 perl 兼容的正則表達式庫。 nginx的http模塊使用pcre來解…

前端jd要求:了解一門后端開發語言優先 解決方案之Node.js

前端jd要求&#xff1a;了解一門后端開發語言優先 解決方案之Node.js 前言常見的后端開發語言一、什么是 Node.js二、學習 Node.js 的前置知識三、學習 Node.js 的步驟1、Node.js 的安裝2、Node.js 的基本語法和 API模塊導入和導出文件讀寫操作HTTP 服務器命令行參數 3、Node.j…

可能導致不可接受的信息安全事件發生的核電站事故。

立陶宛伊格納利納核電站&#xff08;1992 年&#xff09; 一名在該核電站工作的程序員將惡意代碼上傳到一個負責反應堆子系統運行的自動化系統中&#xff0c;該系統被及時發現。 但如果沒有及時發現&#xff0c;誰知道會發生什么呢&#xff1f;核電站被關閉以進行調查。有關這…