C# 关于config文件中的usersettings
在调整app.config的时候遇到了一点问题,把这个问题记录下来,可能我只是没有找到解决方案,问题本身也许并不复杂。
在VS中通过Properties中的Settings.settings来设置作用范围为用户的配置项,假设此时的配置名称为Port,配置的内容为A
此时在程序中通过Properties.Settings.Default.Port来获取该配置项,获取到的值为A生成解决方案之后,在.exe.config文件中修改该Port配置,将其修改成B
程序中同样使用Properties.Settings.Default.Port来获取该值,此时获取到的是B程序中使用Properties.Settings.Default.Properties["Port"].DefaultValue来获取Port配置,此时获取到的值 是A而不是B 。
程序中修改Properties.Settings.Default.Port 为C,并使用Properties.Settings.Default.Save()进行保存,再通过Properties.Settings.Default.Port来获取该配置,此时获取到的值为C。
注意,这样的修改不会直接去改exe.config文件,而是会在用户目录下的可能是Appdata类似的目录下main的相应项目文件下下生成一个user.config文件,用户的修改在这个config文件中。现在遇到的问题是如何在做了上面的1, 2, 3, 4之后,能够获取到值为B的配置,即直接读取config文件中的配置(有该需求的原因是用户可能直接改过这个config文件,而不是通过程序提供的某种方式修改的),而不是使用程序一开始配置的settings,也不使用用户在程序中修改后保存的settings。
顺便记录一下读取配置类型为StringCollection的默认userSettings配置的方法:
使用Xml解析:
using System.Xml;
var prop = Properties.Settings.Default.Properties["Port"].DefaultValue as string;
var doc = new XmlDocument();
doc.LoadXml(prop);
XmlNodeList nodes = doc.SelectSingleNode("ArrayOfString").ChildNodes;
var ts = new List<String>();
foreach (XmlNode e in nodes)
s.Add(e.InnerText);
从app.config文件中看,这个配置项大概是这样的:
<userSettings>
<XXXX.Properties.Settings>
<setting name="Port" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>1</string>
<string>2</string>
<string>3</string>
<string>4</string>
<string>5</string>
<string>6</string>
<string>7</string>
<string>8</string>
<string>9</string>
<string>10</string>
<string>11</string>
</ArrayOfString>
</value>
</setting>
</XXXX.Properties.Settings>
</userSettings>
C# 关于config文件中的usersettings的更多相关文章
- c# 如何使用DLL的config文件中的信息
我知道用c#编写的exe程序可以读取config文件中的配置信息,比如Test.exe,可以在与Test.exe相同目录下放置一个config文件:Test.exe.config,用System.Co ...
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
原文:在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据) 我们都知道,在asp.net中修改 ...
- Web.config 文件中的 system.webServer
Web.config 文件中的 system.webServer 节用于指定适用于 Web 应用程序的 IIS 7.0 设置.system.WebServer 是 configuration 节的子级 ...
- web.config文件中配置数据库连接的两种方式
web.config文件中配置数据库连接的两种方式 标签: 数据库webconfig 2015-04-28 18:18 31590人阅读 评论(1)收藏举报 分类: 数据库(74) 在网站开发 ...
- Machine.config 文件中节点<machineKey>的强随机生成
Machine.config 文件中节点<machineKey>的强随机生成 <machineKey>这个节允许你设置用于加密数据和创建数字签名的服务器特定的密钥.ASP.NE ...
- 如何在web.config文件中配置Session变量的生命周期
实例说明:在网上购物商城中,为了维护在线购物环境,一般只有注册会员才可以购买商品.实现购物功能时,先通过Session变量记录会员的登录名,然后在购买商品页面通过判断会员是否登录确定其能否购买商品. ...
- jmeter csv Data Set Config 文件中带引号的数据转换问题(自动添加双引号解决办法)
1.我们从csv中获取数据,在jmeter中使用这些数据,其中csv的数据如图,有的数据包含引号. 2.问题:我们获取的json数据,被自动添加了双引号 3.解决方式: 在CSV Data Set C ...
- Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配
一.Spring IOC 容器支持自动装配 Bean,所谓自动装配是指,不需要通过 <property> 或 <constructor-arg> 为 Bean 的属性注入值的过 ...
- Web.Config文件中使用configSource
我们都知道,在asp.net中修改了配置文件web.config后,会导致应用程序重启,所有会话(session)丢失.然而,应用程序的配置信息放在配置文件里是最佳选择,在后台修改了配置后导致所有会话 ...
随机推荐
- 当 K8s 集群达到万级规模,阿里巴巴如何解决系统各组件性能问题?
作者 | 阿里云容器平台高级技术专家 曾凡松(逐灵) 本文主要介绍阿里巴巴在大规模生产环境中落地 Kubernetes 的过程中,在集群规模上遇到的典型问题以及对应的解决方案,内容包含对 etcd.k ...
- centos7搭建squid
squid在做爬虫代理时候,我们只需要做到一个squid代理,然后对其他代理做转发轮询,如何使用squid做代理并自动转发轮询? 加上这行代码: cache_peer 120.xx.xx.32 par ...
- Flume系列一之架构介绍和安装
Flume架构介绍和安装 写在前面 在学习一门新的技术之前,我们得知道了解这个东西有什么用?我们可以使用它来做些什么呢?简单来说,flume是大数据日志分析中不能缺少的一个组件,既可以使用在流处理中, ...
- JAVA设计模式---单例模式篇
单例模式(singleton):是JAVA中最简单的一种设计模式,属于创建型模式.所谓单例,就是整个程序有且仅有一个实例. 特点: 构造方法私有化 在本类中实例化一个对象作为本类的属性 对外提供一个访 ...
- 阿里云服务器CentOS6.9安装JDK
1:首先查看系统有没有自带jdk rpm -qa | grep java 2:将存在的一一卸载 rpm -ev java-1.7.0-openjdk-1.7.0.141-2.6.10.1.el6_9. ...
- 阿里云ecs安全组端口开放设置
新买的一些云服务,上面操作都没问题还是无法访问,需要在购买的服务里加上安全规则,如图: 点击配置规则进行操作
- Python列表的深度排序
实例1:>>>L = [2,3,1,4]>>>L.sort()>>>L>>>[1,2,3,4] 实例2:>>> ...
- 如何增强VR的vection/self-motion?
上一节讲到了vection是给玩家带来“移动感”的因素,它提供良好VR体验的关键之一.那么VR中我们一般用哪些方式来提供vection呢?1 首先来简单了解一下人体和空间相关的感知机制. 视觉线索 v ...
- Scala 数组和List
Scala 数组和List: import scala.collection.mutable.ArrayBuffer import scala.collection.mutable.Buffer ob ...
- Python 爬虫入门实战
1. 前言 首先自我介绍一下,我是一个做 Java 的开发人员,从今年下半年开始,一直在各大技术博客网站发表自己的一些技术文章,差不多有几个月了,之前在 cnblog 博客园加了网站统计代码,看到每天 ...