在.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”。