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

相关推荐
李少兄6 分钟前
JavaScript 数据类型完全指南
开发语言·javascript·ecmascript
Seoyoneh32 分钟前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
Tangyuewei1 小时前
Java 写 Agent:模型只是组件
java·开发语言
小玮看世界1 小时前
[Python]从合并区间到传感器融合区:合并区间在传感器区域融合的实际落地
开发语言·python
繁星蓝雨2 小时前
C++的设计与演进大纲(如何从C语言一步步成长为C++)
c语言·开发语言·c++·c++历史·c++演进
Evand J3 小时前
【MATLAB例程,图像降噪滤波9】自适应维纳滑动窗口滤波(Wiener)图像降噪、方法对比,有中文注释
开发语言·图像处理·计算机视觉·matlab·滑动窗口·滤波·降噪
杜大哥3 小时前
python程序:如何查看电脑【电池电量的剩余百分比】 和 【是否插入连接着充电器】?
开发语言·python
wuyk5553 小时前
Python网络爬虫入门到实战 第01章:爬虫到底是什么?原理、流程、合法性、风险全解析(零基础必看)
开发语言·爬虫·python
yurenpai(27届找实习中)3 小时前
Java 10 的 var 为什么不能随便用?从订单汇总看懂类型推断与泛型陷阱
java·开发语言·java18
shmily麻瓜小菜鸡3 小时前
JS/TS 易踩坑知识点 — 模块化与工程化类
开发语言·javascript·ecmascript