我是如何动态编辑App.config的!

VB.NET与C#.NET操作App.config文件方法
本文围绕工作中临时保存数据,介绍了App.config文件的操作方法。先给出App.config预设内容及读取方式,重点阐述编辑方法,提供了VB.NET和C#.NET代码示例,还介绍了以Dataset方式读写Config及相关XML文件的方法。

在工作中为了实现临时保存数据的目的,我选择了用App.config

本文假设App.config的预先设置内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Copy" value="ABC公司"/>
<add key="Company" value="无锡市ABC信息技术有限公司"/>
<add key="ComUrl" value="http://www.ABC.net.cn"/>
</appSettings>
</configuration>

读取我就不说了,很多人都会的!

引用:Imports System.Configuration名字空间

然后,

TBCopy.Text = ConfigurationSettings.AppSettings("Copy")
TBCompany.Text = ConfigurationSettings.AppSettings("Company")
TBComUrl.Text = ConfigurationSettings.AppSettings("ComUrl")

这样就调用了!

可是怎么样编辑呢?如何编辑它成了难题,首先在优快云上找了很久,无果,到MSDN上也找了很久,不太适合,看来只有自己动手了!因为其是个典型的XML文件,于是可以以XML的方法操作它!将下面的过程放到模块中或需要用到的地方!

===

VB.net

===

Public Sub SysConfig(ByVal myValue() As String)
Dim i As Integer
Dim XmlDoc As New XmlDocument
XmlDoc.Load(Application.ExecutablePath & ".config")
Dim XN As XmlNode = XmlDoc.SelectSingleNode("/configuration/appSettings")
For i = 0 To myValue.Length - 1
XN.ChildNodes.Item(i).Attributes.ItemOf(1).Value() = myValue(i)
Next
XmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)
XmlDoc = Nothing
End Sub

===

C#.net

===

Public Void SysConfig(String myValue() )

{
XmlDocument XmlDoc=new XmlDocument();

XmlDoc.Load(Application.ExecutablePath & ".config");
XmlNode XN=new XmlNode();

XN.SelectSingleNode("/configuration/appSettings");
For (int i = 0;i<= myValue.Length - 1;i++)

{
XN.ChildNodes.Item(i).Attributes.ItemOf(1).Value() = myValue(i);

}
XmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
XmlDoc.Dispose();

}

我是通过传递一个字符串数组来作参数的!每个值就是Config里的一行!按顺序排好!

Dim tmpStr() As String = {Trim(TBCopy.Text), Trim(TBCompany.Text), Trim(TBComUrl.Text)}
SysConfig(tmpStr)

这样就完成了修改的目的!

还有一种方法:

以Dataset方式读写Config及相关XML文件
Private Sub DealXML()
Dim myDs As New DataSet
myDs.ReadXml(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)
TBCopy.Text = myDs.Tables(1).Rows(0)(1)
TBCompany.Text = myDs.Tables(1).Rows(1)(1)
TBComUrl.Text = myDs.Tables(1).Rows(2)(1)
'------------------------------------------
myDs.Tables(1).Rows(0)(1) = TBCopy.Text
myDs.Tables(1).Rows(1)(1) = TBCompany.Text
myDs.Tables(1).Rows(2)(1) = TBComUrl.Text
'------------------------------------------
myDs.AcceptChanges()
myDs.WriteXml(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)
myDs.Clear()
myDs.Dispose()
End Sub

至于喜欢用哪种都行!呵呵,完!有问题请联系作者!liujiayu10@hotmail.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值