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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
配置文件概述: 应用程序配置文件是标准的XML 文件 XML 标记和属性是区分大小写的 它是可以 按需要更改的 开发人员可以使用配置文件来更改设置 而不必重编译应用程序 配置 文件的根节点是configuration 我们经常访问的是appSettings 它是由 Net 预定义配置 节 我们经常使用配置文件的架构是象下面的形式 先大概有个印象 通过后面的实 例会有一个比较清楚的认识 下面的“配置节”可以理解为进行配置一个XML 的节点 常见配置文件模式: <configuration> <configSections> 配置节声明区域 包含配置节和命名空间声明 <section> 配置节声明 <sectionGroup> 定义配置节组 <section> 配置节组中的配置节声明 <appSettings> 预定义配置节 <Custom element for configuration section> 配置节设置区域 2 只有appSettings 节的配置文件及访问方法 下面是一个最常见的应用程序配置文件的例子 只有appSettings 节 < xml version "1 0" encoding "utf 8" > <configuration> <appSettings> <add key "connectionstring" value "User ID sa;Data Source ;Password ;Initial C atalog test;Provider SQLOLEDB 1;" > <add key "TemplatePATH" value "Template" > < appSettings> < configuration> 下面来看看这样的配置文件如何方法 string connectionString ConfigurationSettings AppSettings["connectionstring"]; 使用ConfigurationSettings 类的静态属性AppSettings 就可以直接方法配置文件中的配置 信息 这个属性的类型是NameValueCollection 3 自定义配置文件 3 1 自定义配置节 一个用户自定义的配置节 在配置文件中分为两部分:一是在<configSections>< confi gSections>配置节中声明配置节(上面配置文件模式中的“<section>”) 另外是在<confi gSections>< configSections >之后设置配置节(上面配置文件模式中的“<Custom eleme nt for configuration section>”) 有点类似一个变量先声明 后使用一样 声明一个配 置文件的语句如下: <section name " " type " " > <section>:声明新配置节 即可创建新配置节 P> name:自定义配置节的名称 type:自定义配置节的类型 主要包括System Configuration SingleTagSectionHandler S ystem Configuration DictionarySectionHandler System Configuration NameValueSectionHa ndler 不同的type 不但设置配置节的方式不一样 最后访问配置文件的操作上也有差异 下面 我们就举一个配置文件的例子 让它包含这三个不同的type < xml version "1 0" encoding "utf 8" > <configuration> <configSections> <section name "Test1" type "System Configuration SingleTagSectionHandler" > <section name "Test2" type "System
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Net蚂蚁代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值