C# App.Config详解

应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。
配置文件的根节点是configuration。我们经常访问的是appSettings,它是由.Net预定义配置节。我们经常使用的配置文件的架构是象下面的形式。
先大概有个印象,通过后面的实例会有一个比较清楚的认识。下面的“配置节”可以理解为进行配置一个XML的节点。
1.向项目添加app.config文件:

右击项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”;如果项目以前没有配置文件,则默认的文件名称为“app.config”,单击“确定”。出现在设计器视图中的app.config文件为:

<?xmlversion="1.0"encoding="utf-8"?>

<configuration>

</configuration>

在项目进行编译后,在bin/Debuge文件下,将出现两个配置文件(以本项目为例),一个名为“JxcManagement.EXE.config”,另一个名为“JxcManagement.vshost.exe.config”。第一个文件为项目实际使用的配置文件,在程序运行中所做的更改都将被保存于此;第二个文件为原代码“app.config”的同步文件,在程序运行中不会发生更改。

2.connectionStrings配置节:

请注意:如果您的SQL版本为2005 Express版,则默认安装时SQL服务器实例名为localhost/SQLExpress,须更改以下实例中“Data Source=localhost;”一句为“Data Source=localhost/SQLExpress;”,在等于号的两边不要加上空格。

<!--数据库连接串-->

<connectionStrings>

<clear/>

<addname="conJxcBook"

connectionString="Data Source=localhost;Initial Catalog=jxcbook;User ID=sa;password=********"

providerName="System.Data.SqlClient"/>

</connectionStrings>

3.appSettings配置节:

appSettings配置节为整个程序的配置,如果是对当前用户的配置,请使用userSettings配置节,其格式与以下配置书写要求一样。

<!--进销存管理系统初始化需要的参数-->

<appSettings>

<clear/>

<addkey="userName"value=""/>

<addkey="password"value=""/>

<addkey="Department"value=""/>

<addkey="returnValue"value=""/>

<addkey="pwdPattern"value=""/>

<addkey="userPattern"value=""/>

</appSettings>

4.读取与更新app.config

对于app.config文件的读写,参照了网络文章:http://www.codeproject.com/csharp/ SystemConfiguration.asp标题为“Read/Write App.Config File with .NET 2.0”一文。

请注意:要使用以下的代码访问app.config文件,除添加引用System.Configuration外,还必须在项目添加对System.Configuration.dll的引用。

4.1 读取connectionStrings配置节

///<summary>

///依据连接串名字connectionName返回数据连接字符串

///</summary>

///<param name="connectionName"></param>

///<returns></returns>

privatestaticstringGetConnectionStringsConfig(stringconnectionName)

{

stringconnectionString =

ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();

Console.WriteLine(connectionString);

returnconnectionString;

}

4.2 更新connectionStrings配置节

///<summary>

///更新连接字符串

///</summary>

///<param name="newName">连接字符串名称</param>

///<param name="newConString">连接字符串内容</param>

///<param name="newProviderName">数据提供程序名称</param>

privatestaticvoidUpdateConnectionStringsConfig(stringnewName,

stringnewConString,

stringnewProviderName)

{

boolisModified =false;//记录该连接串是否已经存在

//如果要更改的连接串已经存在

if(ConfigurationManager.ConnectionStrings[newName] !=null)

{

isModified =true;

}

//新建一个连接字符串实例

ConnectionStringSettingsmySettings =

newConnectionStringSettings(newName, newConString, newProviderName);

//打开可执行的配置文件*.exe.config

Configurationconfig =

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

//如果连接串已存在,首先删除它

if(isModified)

{

config.ConnectionStrings.ConnectionStrings.Remove(newName);

}

//将新的连接串添加到配置文件中.

config.ConnectionStrings.ConnectionStrings.Add(mySettings);

//保存对配置文件所作的更改

config.Save(ConfigurationSaveMode.Modified);

//强制重新载入配置文件的ConnectionStrings配置节

ConfigurationManager.RefreshSection("ConnectionStrings");

}

4.3 读取appStrings配置节

///<summary>

///返回*.exe.config文件中appSettings配置节的value项

///</summary>

///<param name="strKey"></param>

///<returns></returns>

privatestaticstringGetAppConfig(stringstrKey)

{

foreach(stringkeyinConfigurationManager.AppSettings)

{

if(key == strKey)

{

returnConfigurationManager.AppSettings[strKey];

}

}

returnnull;

}

4.4 更新connectionStrings配置节

///<summary>

///在*.exe.config文件中appSettings配置节增加一对键、值对

///</summary>

///<param name="newKey"></param>

///<param name="newValue"></param>

privatestaticvoidUpdateAppConfig(stringnewKey,stringnewValue)

{

boolisModified =false;

foreach(stringkeyinConfigurationManager.AppSettings)

{

if(key==newKey)

{

isModified =true;

}

}

// Open App.Config of executable

Configurationconfig =

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

// You need to remove the old settings object before you can replace it

if(isModified)

{

config.AppSettings.Settings.Remove(newKey);

}

// Add an Application Setting.

config.AppSettings.Settings.Add(newKey,newValue);

// Save the changes in App.config file.

config.Save(ConfigurationSaveMode.Modified);

// Force a reload of a changed section.

ConfigurationManager.RefreshSection("appSettings");

}

C#读写app.config中的数据

读语句:

String str = ConfigurationManager.AppSettings["DemoKey"];

写语句:

Configuration cfa =

  ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
cfa.AppSettings.Settings["DemoKey"].Value = "DemoValue";
cfa.Save();

配置文件内容格式:(app.config)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="DemoKey" value="*" />
</appSettings>
</configuration>

红笔标明的几个关键节是必须的

System.Configuration.ConfigurationSettings.AppSettings["Key"];

  但是现在FrameWork2.0已经明确表示此属性已经过时。并建议改为ConfigurationManager

或WebConfigurationManager。并且AppSettings属性是只读的,并不支持修改属性值.

  但是要想调用ConfigurationManager必须要先在工程里添加system.configuration.dll程序集的引用。

(在解决方案管理器中右键点击工程名称,在右键菜单中选择添加引用,.net TablePage下即可找到)
添加引用后可以用 String str = ConfigurationManager.AppSettings["Key"]来获取对应的值了。

  更新配置文件:

Configuration cfa = ConfigurationManager.

    OpenExeConfiguration(ConfigurationUserLevel.None);

cfa.AppSettings.Settings.Add("key", "Name")|| 

  cfa.AppSettings.Settings["BrowseDir"].Value = "name";

  等等...
  最后调用
  cfa.Save();
  当前的配置文件更新成功。

*****************************************************************************************************************

读写配置文件app.config
  在.Net中提供了配置文件,让我们可以很方面的处理配置信息,这个配置是XML格式的。而且.Net中已经提供了一些访问这个文件的功能。

1、读取配置信息
  下面是一个配置文件的具体内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="ConnenctionString" value="*" />
<add key="TmpPath" value="C:\Temp" />
</appSettings>
</configuration>

.net提供了可以直接访问<appsettings>(注意大小写)元素的方法,在这元素中有很多的子元素,这些子元素名称都是 “add”,有两个属性分别是“key”和“value”。一般情况下我们可以将自己的配置信息写在这个区域中,通过下面的方式进行访问:

string ConString=System.Configuration

    .ConfigurationSettings.AppSettings["ConnenctionString"];

在appsettings后面的是子元素的key属性的值,例如appsettings["connenctionstring"],我们就是访 问<add key="ConnenctionString" value="*" />这个子元素,它的返回值就是“*”,即value属性的值。

2、设置配置信息

  如果配置信息是静态的,我们可以手工配置,要注意格式。如果配置信息是动态的,就需要我们写程序来实现。在.Net中没有写配置文件的功能,我们可以使用操作XML文件的方式来操作配置文件。下面就是一个写配置文件的例子。

private void SaveConfig(string ConnenctionString)
{
  XmlDocument doc=new XmlDocument();
  //获得配置文件的全路径
  string strFileName=AppDomain.CurrentDomain.BaseDirectory.ToString()

                  +"Code.exe.config";
  doc.LOAd(strFileName);
  //找出名称为“add”的所有元素
  XmlNodeList nodes=doc.GetElementsByTagName("add");
  for(int i=0;i<nodes.Count;i++)
  {
    //获得将当前元素的key属性
    XmlAttribute att=nodes[i].Attributes["key"];
    //根据元素的第一个属性来判断当前的元素是不是目标元素
    if (att.Value=="ConnectionString") 
    {
      //对目标元素中的第二个属性赋值
      att=nodes[i].Attributes["value"];
      att.Value=ConnenctionString;
      break;
    }
  }
  //保存上面的修改
  doc.Save(strFileName);
}

读取并修改App.config文件

1.向项目添加app.config文件:

右击项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”;如果项目以前没有配置文件,则默认的文件名称为“app.config”,单击“确定”。出现在设计器视图中的app.config文件为:

<?xmlversion="1.0"encoding="utf-8"?>

<configuration>

</configuration>

在项目进行编译后,在bin\Debuge文件下,将出现两个配置文件(以本项目为例),一个名为“JxcManagement.EXE.config”,另一个名为“JxcManagement.vshost.exe.config”。第一个文件为项目实际使用的配置文件,在程序运行中所做的更改都将被保存于此;第二个文件为原代码“app.config”的同步文件,在程序运行中不会发生更改。

2.connectionStrings配置节:

请注意:如果您的SQL版本为2005 Express版,则默认安装时SQL服务器实例名为localhost\SQLExpress,须更改以下实例中“Data Source=localhost;”一句为“Data Source=localhost\SQLExpress;”,在等于号的两边不要加上空格。

<!--数据库连接串-->

<connectionStrings>

<clear/>

<addname="conJxcBook"

connectionString="Data Source=localhost;Initial Catalog=jxcbook;User ID=sa;password=********"

providerName="System.Data.SqlClient"/>

</connectionStrings>

3.appSettings配置节:

appSettings配置节为整个程序的配置,如果是对当前用户的配置,请使用userSettings配置节,其格式与以下配置书写要求一样。

<!--进销存管理系统初始化需要的参数-->

<appSettings>

<clear/>

<addkey="userName"value=""/>

<addkey="password"value=""/>

<addkey="Department"value=""/>

<addkey="returnValue"value=""/>

<addkey="pwdPattern"value=""/>

<addkey="userPattern"value=""/>

</appSettings>

4.读取与更新app.config

对于app.config文件的读写,参照了网络文章:http://www.codeproject.com/csharp/ SystemConfiguration.asp标题为“Read/Write App.Config File with .NET 2.0”一文。

请注意:要使用以下的代码访问app.config文件,除添加引用System.Configuration外,还必须在项目添加对System.Configuration.dll的引用。

4.1 读取connectionStrings配置节

///<summary>

///依据连接串名字connectionName返回数据连接字符串

///</summary>

///<param name="connectionName"></param>

///<returns></returns>

privatestaticstringGetConnectionStringsConfig(stringconnectionName)

{

stringconnectionString =

ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();

Console.WriteLine(connectionString);

returnconnectionString;

}

4.2 更新connectionStrings配置节

///<summary>

///更新连接字符串

///</summary>

///<param name="newName">连接字符串名称</param>

///<param name="newConString">连接字符串内容</param>

///<param name="newProviderName">数据提供程序名称</param>

privatestaticvoidUpdateConnectionStringsConfig(stringnewName,

stringnewConString,

stringnewProviderName)

{

boolisModified =false;//记录该连接串是否已经存在

//如果要更改的连接串已经存在

if(ConfigurationManager.ConnectionStrings[newName] !=null)

{

isModified =true;

}

//新建一个连接字符串实例

ConnectionStringSettingsmySettings =

newConnectionStringSettings(newName, newConString, newProviderName);

//打开可执行的配置文件*.exe.config

Configurationconfig =

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

//如果连接串已存在,首先删除它

if(isModified)

{

config.ConnectionStrings.ConnectionStrings.Remove(newName);

}

//将新的连接串添加到配置文件中.

config.ConnectionStrings.ConnectionStrings.Add(mySettings);

//保存对配置文件所作的更改

config.Save(ConfigurationSaveMode.Modified);

//强制重新载入配置文件的ConnectionStrings配置节

ConfigurationManager.RefreshSection("ConnectionStrings");

}

4.3 读取appStrings配置节

///<summary>

///返回*.exe.config文件中appSettings配置节的value项

///</summary>

///<param name="strKey"></param>

///<returns></returns>

privatestaticstringGetAppConfig(stringstrKey)

{

foreach(stringkeyinConfigurationManager.AppSettings)

{

if(key == strKey)

{

returnConfigurationManager.AppSettings[strKey];

}

}

returnnull;

}

4.4 更新connectionStrings配置节

///<summary>

///在*.exe.config文件中appSettings配置节增加一对键、值对

///</summary>

///<param name="newKey"></param>

///<param name="newValue"></param>

privatestaticvoidUpdateAppConfig(stringnewKey,stringnewValue)

{

boolisModified =false;

foreach(stringkeyinConfigurationManager.AppSettings)

{

if(key==newKey)

{

isModified =true;

}

}

// Open App.Config of executable

Configurationconfig =

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

// You need to remove the old settings object before you can replace it

if(isModified)

{

config.AppSettings.Settings.Remove(newKey);

}

// Add an Application Setting.

config.AppSettings.Settings.Add(newKey,newValue);

// Save the changes in App.config file.

config.Save(ConfigurationSaveMode.Modified);

// Force a reload of a changed section.

ConfigurationManager.RefreshSection("appSettings");

}

url:http://greatverve.cnblogs.com/archive/2011/07/18/app-config.html

时间: 2024-10-07 18:09:11

C# App.Config详解的相关文章

App.Config详解

App.Config详解 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序.配置文件的根节点是configuration.我们经常访问的是appSettings,它是由.Net预定义配置节.我们经常使用的配置文件的架构是象下面的形式.先大概有个印象,通过后面的实例会有一个比较清楚的认识.下面的“配置节”可以理解为进行配置一个XML的节点. 1.  向项目添加 app.config 文件: 右击

C# App.config 详解

读语句: String str = ConfigurationManager.AppSettings["DemoKey"]; 写语句: Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); cfa.AppSettings.Settings["DemoKey"].Value = "DemoValue"; cfa.Save

搬家行业开发小程序系统(App.Config详解及读写操作)

应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序.配置文件的根节点是configuration.我们经常访问的是appSettings,它是由.Net预定义配置节.我们经常使用的配置文件的架构是象下面的形式.先大概有个印象,通过后面的实例会有一个比较清楚的认识.下面的"配置节"可以理解为进行配置一个XML的节点. 本文为大家解析关于搬家行业定制系统的方案~ 搬家系统是什么?搬家系统是

web.config详解

在开发中经常会遇到这样的情况,在部署程序时为了保密起见并不将源代码随项目一同发布,而我们开发时的环境与部署环境可能不一致(比如数据库不一样),如 果在代码中保存这些配置这些信息部署时需要到用户那里更改代码再重新编译,这种部署方式非常麻烦.在.net中提供了一种便捷的保存项目配置信息的办法, 那就是利用配置文件,配置文件的文件后缀一般是.config,在asp.net中配置文件名一般默认是web.config.每个web.config 文件都是基于XML的文本文件,并且可以保存到Web应用程序中的

(转)web.config详解之在文件中配置网站默认页面

在<configuration></configuration>中添加下面的配置 <system.webServer>        <defaultDocument>            <files>                <clear />                <add value="index.aspx" />                <add value=&qu

关于VUE 配置文件config详解内容

// const path = require('path'); module.exports = { /** 区分打包环境与开发环境 * process.env.NODE_ENV==='production' (打包环境) * process.env.NODE_ENV==='development' (开发环境) * baseUrl: process.env.NODE_ENV==='production'?"https://xxx":'', */ // 项目部署的基础路径 // 我们

adminLTE 教程 -2 配置文件 app.js详解

我一般写代码,是设置一个index.html文件,然后在content里面通过ajax请求,动态替换页面内容来实现页面切换,以实现单页面的效果. adminLTE的配置文件是app.js,在页面中引入即可,想修改配置,一般不应该修改配置文件,而是在配置文件之前写一段js代码,通过给变量(adminLTE指定的) AdminLTEOptions  赋值,加载app.js的时候回先检测有没有该变量,优先使用该变量的配置,该变量没有赋值的配置信息再使用app.js里面原有的配置.然后对页面进行配置.如

&lt;转&gt;如何将iOS应用发布到App Store详解

系统信息 Mac:OS X 10.8.4 XCode:4.6.3 发布证书申请请参照我的上一篇博客http://my.oschina.net/joanfen/blog/133624 1.登陆苹果开发者中心http://developer.apple.com(99美元账号) 2.进入itunes connect 3.选择Manage Your Apps 4.选择Add New App 5.填写项目相关信息,不知道怎么填的点击问号查看,Bundle ID Suffix需要与上一篇申请发布证书中锁填的

Bitmap.Config 详解

前言 Android是一个内存相当吃紧的系统,那么在做程序的过程中使用内存就需要相当谨慎,而我们接触最大的大对象估计就是Bitmap了,那么下面就根据Bitmap.Config值的介绍来看下Bitmap在内存中存储的形式,那么在根据实际场景选择合适的配置进行Bitmap存储 原文地址:http://www.cnblogs.com/luoaz/p/4374886.html Bitmap.Config Possible bitmap configurations. A bitmap configur