window setting.settings 详解。
摘自:http://edu.admin5.com/article/20110124/0124431N2011.shtml
C# 应用程序设置
C# 应用程序设置
官方参考:http://msdn.microsoft.com/zh-cn/library/k4s6c3a0(v=VS.80).aspx
使用VS自带的应用程序设置功能
- 创建项目
- 选择菜单 [项目] > [属性]
- 选择 [设置]
就可手动添加应用程序设置了。
添加成功后,系统会自动生成App.config文件。
01
|
<? xml version = "1.0" encoding = "utf-8" ?>
|
02
|
< configuration >
|
03
|
< userSettings >
|
04
|
< WindowsApplication5.Properties.Settings >
|
05
|
< setting name = "mySet" serializeAs = "String" >
|
06
|
< value >testSet_828</ value >
|
07
|
</ setting >
|
08
|
< setting name = "FormTitle" serializeAs = "String" >
|
09
|
< value >FormTestdddd</ value >
|
10
|
</ setting >
|
11
|
</ WindowsApplication5.Properties.Settings >
|
12
|
</ userSettings >
|
13
|
</ configuration >
|
关于User和Application的区别
- Application 不允许在程序中更新设置。只能手动更改App.config或到项目属性的设置中更改。
- User 允许在程序中更改设置。
VS也提供了一种直接在窗体控件属性的ApplicationSettings 里设置关联应用程序的快捷方法。
以下列举了使用VS自带应用程序应注意的地方
- 如果范围是Application时,在程序此值时只读的。只能通过修改App.config的对应项来更改。
- 如果范围是User,并且在程序未对此值做修改时,修改App.config对应项,在程序访问时当前值为App.config中设置的值。
- 如果范围是User,并且在程序中对此值进行了修改,App.config中记录的还会是老值,并且以后的App.config此项设置将无效。
那到底User修改后的值系统在什么地方存这呢?
经过测试是在C:\Documents and Settings\Administrator\Local Settings\Application Data\Phook\WindowsApplication5.exe_Url_nlwmvagksxwiigfpn5ymssyrjtyn22ph\1.0.0.0\user.config
下存着,如果更改以上App.config则程序将取到新值。很奇怪,微软为什么要弄的怎么复杂。
在程序中使用
1
|
//获取值
|
2
|
label1.Text = Properties.Settings.Default.mySet;
|
3
|
label2.Text = Properties.Settings.Default.myApp;
|
4
|
//修改值,只能修改User范围的。
|
5
|
Properties.Settings.Default.mySet = "test1111" ;
|
6
|
Properties.Settings.Default.Save();
|
总结
- 应该是如果选择范围是User时,此设置是用户级别的。使用不同用户登录后运行程序取的值是不一样的。
- 并且如果程序修改了名称,各自会拥有另一套App.config。
- 而Application是应用程序级的,任何打开相同程序的Application都会一样。
自定义App.config
可能你想要一个Config可以功能和Application范围一样,但有同时支持程序修改。以下是实现方法
创建工程
手动添加App.config
格式如下:
1
|
<? xml version = "1.0" encoding = "utf-8" ?>
|
2
|
< configuration >
|
3
|
< appSettings >
|
4
|
< add key = "y" value = "this is Y" />
|
5
|
</ appSettings >
|
6
|
</ configuration >
|
引用 System.Configuration
把对App.config的操作合并成了一个类方便调用。
01
|
using System;
|
02
|
using System.Collections.Generic;
|
03
|
using System.Text;
|
04
|
using System.Configuration;
|
05
|
|
06
|
//注意需要引用 System.Configuration
|
07
|
|
08
|
public class AppConfig
|
09
|
{
|
10
|
private static Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
|
11
|
|
12
|
/// <summary>
|
13
|
/// 获取
|
14
|
/// </summary>
|
15
|
/// <param name="key"></param>
|
16
|
/// <returns></returns>
|
17
|
public static string GetValue( string key)
|
18
|
{
|
19
|
string strReturn = null ;
|
20
|
if (config.AppSettings.Settings[key] != null )
|
21
|
{
|
22
|
strReturn = config.AppSettings.Settings[key].Value;
|
23
|
}
|
24
|
return strReturn;
|
25
|
}
|
26
|
|
27
|
/// <summary>
|
28
|
/// 设置
|
29
|
/// </summary>
|
30
|
/// <param name="key"></param>
|
31
|
/// <param name="value"></param>
|
32
|
public static void SetValue( string key, string value)
|
33
|
{
|
34
|
if (config.AppSettings.Settings[key] != null )
|
35
|
{
|
36
|
config.AppSettings.Settings[key].Value = value;
|
37
|
}
|
38
|
else
|
39
|
{
|
40
|
config.AppSettings.Settings.Add(key, value);
|
41
|
}
|
42
|
config.Save(ConfigurationSaveMode.Modified);
|
43
|
}
|
44
|
|
45
|
/// <summary>
|
46
|
/// 删除
|
47
|
/// </summary>
|
48
|
/// <param name="key"></param>
|
49
|
public static void DelValue( string key)
|
50
|
{
|
51
|
config.AppSettings.Settings.Remove(key);
|
52
|
}
|
53
|
}
|
使用方法
1
|
//修改或添加
|
2
|
AppConfig.SetValue( "dtNow" , DateTime.Now.Millisecond.ToString());
|
3
|
//获取
|
4
|
label1.Text = AppConfig.GetValue( "dtNow" );
|
转载于:https://www.cnblogs.com/85538649/archive/2011/09/09/2172744.html
window setting.settings 详解。相关推荐
- 1.16.Flink Window和Time详解、TimeWindow的应用、Window聚合分类之全量聚合、全量聚合状态变化过程-求最大值、Time介绍、EventTime和Watermarks等
1.16.Flink Window和Time详解 1.16.1.Window(窗口) 1.16.2.Window的类型 1.16.3.Window类型汇总 1.16.4.TimeWindow的应用 1 ...
- js基础 -- window.btoa和window.atob使用详解.md
欢迎访问我的个人博客:http://www.xiaolongwu.cn 定义 atob() 解码一个Base64字符串. btoa() 从一个字符串或者二进制数据编码一个Base64字符串. 用法 只 ...
- linux 弹出窗口,实现弹出窗口的window.open用法详解(js代码)
实现弹出窗口的window.open用法详解(js代码) [1.最基本的弹出窗口代码] 其实代码非常简单: 因为这是一段javascripts代码,所以它们应该放在 cript">标签 ...
- window.onload用法详解
网页中的javaScript脚本代码往往需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,为了避免这种情况的发生,可以使用以下两种方式: 一.将脚本代码放在网页的底端,这样在运行脚本代 ...
- Run time setting设置详解
Pacing转载自belie 1> Run time setting设置中的Browser:'Simulate a new user on each iteration'选项 例如:录制 ...
- clickhouse配置项system.settings详解
调研学习clickhouse,上一章介绍了clickhouse的配置项users.xml,这一章介绍另一大项config.xml 从clickhouse的官网看,clickhouse的配置参数主要分了 ...
- python中setting.py详解
setting.py 这个文件包含了所有有关这个Django项目的配置信息,均大写: TEMPLATE_DIRS , DATABASE_NAME , 等. 最重要的设置是 RO ...
- JS代码的window.location属性详解
如果你稍微懂一些JS代码,一般都会知道 window.location.href 这个属性.并且用该属性获取页面 URL 地址: window.location.href = window.locat ...
- window.Event参数详解
window.evet 说明 event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有 ...
最新文章
- 白盒测试之语句分支条件覆盖
- 云信小课堂|聊天室内容审核很头疼?3步解决!
- 30秒,2种方法解决SQL Server的内存管理问题
- 前端—每天5道面试题(3)
- Nacos服务注册发现
- 【吐血整理】Java项目源码分享
- 嗖嗖移动业务大厅(源码下载+注释全 值得收藏)
- 获取Winform窗体或Panel下包含的所有控件、根据控件名称获取指定控件
- 首席新媒体运营商学院创始人黎想:给新媒体运营的7点建议
- ktv系统服务器,ktv服务器主机系统
- centos7.9使用gn+ninja编译程序
- TCP/IP 详解(第 2 版) 笔记 / 3 链路层 / 3.2 以太网与 IEEE 802 LAN/MAN 标准 / 3.2.2 以太网帧格式
- GoogleCast 简介
- 计算机打印途中卡住,联想打印机经典故障处理方法
- xarray+cfgrib读取grib文件——报错总结
- 实战派来了!聊聊百度智能运维的“前世今生” | 技术沙龙
- Windows更新策略配置
- WebView Cache 缓存清除
- 基于android蓝牙zigbee的led路灯监控系统设计,基于ZigBee的智能小区LED路灯控制系统设计...
- Windows优化大师