C# winform或控制台Properties.Settings.Default的使用及存储位置
来源:互联网 发布:ocr日文识别软件 编辑:程序博客网 时间:2024/05/16 14:41
C# winform或控制台Properties.Settings.Default的使用及存储位置
Properties.Settings.Default
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对象,该实例在创建的时候从系统(如果系统中没有就如前面提到的从配置文件中获取)读取在内存中。
另外app.config,系统,内存这3个位置之间值的关系可以使用以下方法互相影响。
new() 构造函数,从系统或配置文件中读取属性值 ,“用户”属性先检查系统,如果没有值,再冲配置文件中读取,“应用程序”属性都从配置文件读取。
Save:将settings“用户”范围的属性写入到系统中, settings实例后,在程序中被赋予新值,如果想保存这些值以便在程序下一次运行时使用,就可以调用Save保存
例:
Properties.Settings.Default.Save();
Reload:从系统或App.config中读取已保存的值刷新当前内存里“用户”范围的属性。先检查系统,当系统中没有保存时再从app.config中获取
例:
Properties.Settings.Default.Reload();
Reset:清空系统中保存的settings,并且从app.config中刷新内存里“用户”范围的属性。
例:
Properties.Settings.Default.Reset();
Upgrade:当程序安装多个时,从最新的一个程序所保存在系统的值读取出来并刷新内存里“用户”范围的属性。
例:
Properties.Settings.Default.Upgrade();
我在settings.settings里面添加一个设定
名称:path
类型:string
user
值:notuse
然后程序里面通过以下2句保存。
Properties.Settings.Default.path="D:\Test";
Properties.Settings.Default.Save();
虽然之后通过调用path,发现它的值是”D:/Test“,但是我在app.config里面发现它的值还是”notuse“。之后清空bin\debug目录以及obj目录,重新调试发现path还是”D:\Test“。
莫非这个设置保存在其他地方?
在系统盘appdata下面,不同操作系统有一定差别,比如我的server03系统,某一个程序的setting放在下面:
C:\Documents and Settings\Administrator\Application Data\ruizhi\WindowsApplication1.exe_Url_0l2pjhmtjiyqprtjqg2f1bexqrq1o3hr\1.0.0.0\user.config。
具体你可以下载一个Procmon来跟踪一下。
果然是保存在其他地方,刚查了一下发现有人说,User 范围配置文件没有保存在应用程序文件夹下,而是保存在这里:X:\Documents and Settings\Windows登录用户\Local Settings\Application Data。
win7用户
C:\Users\dacong\AppData\Local\
用户级别的App.Config在
%USERPROFILE%\Local Settings\Application Data\<Company Name>\
< appdomainname>_<eid>_<hash>\<verison>\user.config
其中%USERPROFILE%在Win7上一般是C:\users\你的登陆名
其他可替换的部分是你程序的属性(名称,版本等)。
- C# winform或控制台Properties.Settings.Default的使用及存储位置
- C#中使用设置(Settings.settings) Properties.Settings.Default .
- C#中使用设置(Settings.settings) Properties.Settings.Default .
- C#中使用设置 Properties.Settings.Default
- C#中使用设置 Properties.Settings.Default
- C#中Properties.Settings.Default
- Properties.Settings.Default 用户设置的保存位置
- C#项目使用Properties.Settings保存数组
- VS的调试:winform中查看控制台输出、查看字符存储位置
- C# Properties.Settings
- settings存储位置。
- C#控制台程序,Winform,WPF的区别
- c# WinForm调用控制台
- C# winform窗口打开特效及窗口位置居中
- C# Settings.settings的用处
- C# winform中使用Panel调节窗口变化是各控件的位置
- Winform Settings配置文件的保存
- Sql Server 查看所有存储过程或视图的位置及内容
- 先占一篇
- 数据结构:C++链表类及一元多项式的实现时遇到的困难
- [LinkedIn]Serialize (encode) and deserialize(decode) a binary tree
- QSortFilterProxyModel
- android动态加载(二)
- C# winform或控制台Properties.Settings.Default的使用及存储位置
- 微信菜单定义小工具
- 【重学《C++Primer第四版》】第二章、变量和基本类型
- 2.1_Handling asynchronous results
- 2次创业经验谈(想创业想做事的人不要错过)
- 2015阿里前端实习在线笔试题
- (五)Unity5.0新特性------unity中编写脚本
- 《世界是数字的》读书笔记(计算机科普知识)
- 基于django的博客和论坛的整合