接前面命令行程序下的Settings,继续看看 Visual Studio 创建的 .NET应用程序 与 Settings 相关的东西
app.config 与 Settings.settings
用VC#创建一个GUI程序后,就会有一个 Settings.settings 文件。
一旦我们通过VC#给它添加值后,在工程目录下会生成一个 app.config 文件。
那么,这两个东西究竟是什么关系?
添加两个字符串类型的配置值(一个应用程序级,一个是用户级)后:
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="WpfApplication1.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="thisIsAppSettings" Type="System.String" Scope="Application">
<Value Profile="(Default)">dbzhang800</Value>
</Setting>
<Setting Name="thisIsUserSettings" Type="System.String" Scope="User">
<Value Profile="(Default)">1+1=2</Value>
</Setting>
</Settings>
</SettingsFile>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WpfApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WpfApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<WpfApplication1.Properties.Settings>
<setting name="thisIsUserSettings" serializeAs="String">
<value>1+1=2</value>
</setting>
</WpfApplication1.Properties.Settings>
</userSettings>
<applicationSettings>
<WpfApplication1.Properties.Settings>
<setting name="thisIsAppSettings" serializeAs="String">
<value>dbzhang800</value>
</setting>
</WpfApplication1.Properties.Settings>
</applicationSettings>
</configuration>
尽管都是 xml 文件,两个文件的风格截然不同,后者app.config就是我们前一篇中介绍到了 Configuration 文件,从它的configSections中可以看出它有两个自定义段,分别叫applicationSettings 和 userSettings
操作这样的一个文件,我们可以创建ConfigurationManager命名空间中的ConfigurationSection的派生类,然后通过该类进行操作。
Settings.settings 看起来相当的简洁,而且和app.config相比,它包含有配置值的类型(比如:Type="System.String")。
而且,无论我们修改Settings.settings还是app.config,Visual studio都会提示我们,并自动同步到另一个文件中。
- Settings.settings 文件的存在的目的是为了生成一个名为 Settings.Designer.cs 的文件,该文件内的类提供了操作配置文件 (比如:program.exe.config) 的封装类。
- app.config 会被拷贝到应用程序目录下,并变身为 program.exe.config
这样一来,在程序内就可以通过
Properties.Settings.Default.thisIsUserSettings = "999999999";
console.WriteLine(Properties.Settings.Default.thisIsAppSettings);
Properties.Settings.Default.Save();
来操作配置文件了。
其中:应用程序级配置是只读的,而用户级是可读写的。
用户配置会被写入到
C:\Users\dbzhang\AppData\Local\WpfApplication1\WpfApplication1.vshost.ex_Url_nifqt3tilgkwjt1wb1fupctc0ddm3exq\1.0.0.0\user.config
这些文件中。
多个.settings文件
同一个工程中,可以添加多个 .settings 文件,每一个都会生成一个封装类,各对 app.config 中的一部分进行操作。
比如:在前面的基础上,添加新的
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="WpfApplication2.Properties" GeneratedClassName="another">
<Profiles />
<Settings>
<Setting Name="qter1" Type="System.String" Scope="Application">
<Value Profile="(Default)">abc</Value>
</Setting>
<Setting Name="qter2" Type="System.String" Scope="User">
<Value Profile="(Default)">efg</Value>
</Setting>
</Settings>
</SettingsFile>
此时,app.config 文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WpfApplication2.Properties.another" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="WpfApplication2.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WpfApplication2.Properties.another" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<WpfApplication2.Properties.another>
<setting name="qter2" serializeAs="String">
<value>efg</value>
</setting>
</WpfApplication2.Properties.another>
<WpfApplication2.Properties.Settings>
<setting name="user1" serializeAs="String">
<value>dbzhang800</value>
</setting>
<setting name="user2" serializeAs="String">
<value>dbzhang801</value>
</setting>
</WpfApplication2.Properties.Settings>
...
多个Profile
每一个 settings 文件中,还可以有多个 Profile 存在,这个怎么玩呢?
分享到:
相关推荐
C# .net读取ini配置文件
一个.net配置文件加密的源代码,这个是我们老师做的,里面包含了program.cs的加密及Web.config加密!对连接字符串的加密,挺不错的!
C#.net 使用json作为配置文件,解悉JSON示例 演示如何解悉JSON,此方法可用于使用一个JSON文件作为程序的配置文件来永久保存配置数据。比txt的更好用,配置文件也更易懂
用于在windows 应用程序中读取、修改config配置文件中的信息。
C# .net的Git忽略文件整理
密码加盐使用配置文件处理 0329 1\直接给登录窗口赋默认值 2\给"序号"赋连续值 3\点击新增或者编辑按钮后保存数据,自动刷新数据. 20140330 1\增加新增或者编辑客户时,效验是否为空,为空时更改输入框颜色 2\增加客户...
ASP.NET2.0配置文件Web.config 详细解释.rar
1、重写.Net Framework中的ConfigurationSection 2、自定义SQL、Message两种类型配置工具 3、提供自定义配置文件工程;配置文件示例。
使用webupload实现了在C# .net项目中的断点续传演示(绝对不亏的,现在.net中webupload服务端好多都不完整,我这个是自己写完用到项目中的,比较稳定,虽然代码比较初级,后面也没整理) 演示地址:...
应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是 App.Config(ExeName.exe.config)。
通过按钮,读取配置文件,并修改自定义配置文件appSettings中的值.这是一个很简单的dome.
未来的视窗、组件程序的设计潮流,将是采用.NET平台为底层服务,并使用C#语言开发。C#是微软为.NET技术量身订制的语言,它拥有简洁的语法和便于开发的特性。本书将C#的特色与应用,借助实战演练的方式,阶段性地引导...
c#操作properties,读写配置文件,非常方便,几行代码就搞定
精通C#.Net、ASP.Net、ADO.Net、AJAX、WEB2.0、XML、JavaScript、SQL Server 2000、Web Service、WSE2.0、.Net Remoting、MultiThread Programming、Socket Programming、Windows Service、Data Structure、 ...
已经支持大部分的系统类型,也可以自定配置文件格式
Quartz.Net2.2.3 不使用配置文件 自动执行任务 这是一个简单示例
在开发Asp.net站点的时候,我们会遇到很多的配置参数:网站名称,上传图片后缀,上传文件后缀,关键字过滤,数据库连接字串等等,这些内容如果比较少的话,直接配置到Web.config文件中,借由.NET提供的操作类,将会非常方便的...
.NET一般用户配置文件,.NET自定义配置文件的读取
C# .net环境读取写入在开发过程中的配置文件信息。
C#读取XML配置文件