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

1、读取配置信息

下面是一个配置文件的具体内容:

 




<? 
  xml version="1.0" encoding="utf-8" 
  ?> 
  
 
  < 
  configuration 
  > 
  
   
  < 
  appSettings 
  > 
  
     
  < 
  add  
  key 
  ="ConnectionString" 
   value 
  ="Server=127.0.0.1;Database=Northwind;Integrated Security=True;" 
    
  /> 
  
     
  < 
  add  
  key 
  ="TmpPath" 
   value 
  ="C:/Temp" 
    
  /> 
  
   
  </ 
  appSettings 
  > 
  
 
  </ 
  configuration 
  >


 

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

 



Dim    strConn  
  As 
    
  String 
    
  = 
   System.Configuration.ConfigurationSettings.AppSettings[ 
  " 
  ConnenctionString 
  " 
  ]


 

在AppSettings 后面的是子元素的key属性的值,例如appsettings["ConnenctionString"],我们就是访问<add key="ConnenctionString" value="Server=127.0.0.1;Database=Northwind;Integrated Security=True;" />这个子元素,它的返回值就是“Server=127.0.0.1;Database=Northwind;Integrated Security=True;”,即value属性的值。

代码示例:

 



Public     
  Shared 
    
  ReadOnly 
    
  Property ConnStr() 
  Property ConnStr() As String
        Get
            Return System.Configuration.ConfigurationSettings.AppSettings("ConnectionString")
        End Get
    End Property

2、设置配置信息

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

 



 

Public       Sub SaveConfig() 
  Sub SaveConfig(ByVal ConnenctionString As String)
        Dim doc As New XmlDocument
        '获得配置文件的全路径
        Dim strFileName As String = AppDomain.CurrentDomain.BaseDirectory.ToString() + "BlueHillWindowsVB.exe.config"
        doc.Load(strFileName)
        '找出名称为“add”的所有元素
        Dim nodes As XmlNodeList = doc.GetElementsByTagName("add")
        Dim i As Integer
        For i = 0 To nodes.Count
            '获得将当前元素的key属性
            Dim att As XmlAttribute = nodes(i).Attributes("key")
            '根据元素的第一个属性来判断当前的元素是不是目标元素
            If att.Value = "ConnectionString" Then
                '对目标元素中的第二个属性赋值
                att = nodes(i).Attributes("value")
                att.Value = ConnenctionString
                Exit For
            End If
        Next i
        '保存上面的修改
        doc.Save(strFileName)

    End Sub       '   SaveConfig 
 
对应地,你也可以使用操作XML文件的方式来读取配置文件:
 
 
   
       Public       Shared     
  ReadOnly 
    
  Property ConnStr() 
  Property ConnStr() As String
        Get
            Dim doc As New XmlDocument
            '获得配置文件的全路径
            Dim strFileName As String = AppDomain.CurrentDomain.BaseDirectory.ToString() + "BlueHillWindowsVB.exe.config"
            doc.Load(strFileName)
            '找出名称为“add”的所有元素
            Dim nodes As XmlNodeList = doc.GetElementsByTagName("add")
            Dim i As Integer
            For i = 0 To nodes.Count
                '获得将当前元素的key属性
                Dim att As XmlAttribute = nodes(i).Attributes("key")
                '根据元素的第一个属性来判断当前的元素是不是目标元素
                If att.Value = "ConnectionString" Then
                    '返回目标元素中的第二个属性
                    att = nodes(i).Attributes("value")
                    Return att.Value
                    Exit For
                End If
            Next i
        End Get
    End Property

 

补充:

通过VS.NET集成开发环境,可以很方便地向我们的项目中添加app.config文件,方法如下:

在“解决方案资源管理器”中,右键单击项目图标,选择“添加”->“添加新项”命令,接下来在“模板”区域选择“应用程序配置文件”,单击“打开”按钮即可。

默认生成的代码如下:

 



<?   xml version="1.0" encoding="utf-8"    ?>   
   <   configuration   >   
   </   configuration   >


 

我们需要自己向App.config文件中添加<appSettings>元素。

说 明一点:虽然我们添加的应用程序配置文件名为App.config,但是应用程序经过编译之后会在 Bin 目录下自动生成一个“程序名.exe.config”的配置文件,例如生成的应用程序名称是 BlueHillWindowsVB.exe,那么配置文件名就是“BlueHillWindowsVB.exe.config”。应用程序实际读取的是 这个配置文件。因此假如你想通过操作XML文件的方式来修改配置文件,那么要修改的是“BlueHillWindowsVB.exe.config”而不 是“App.config”。