一种简便实效的配置文件读写方法
来源:互联网 发布:手机微信一键群发软件 编辑:程序博客网 时间:2024/04/30 06:04
第一步,将配置信息做一个简单的类。
要点:因为要用到序列化,而且是用XmlSerializer来序列化,所以要存到文件的变量信息都要声明为Public,要序列化的类用<Serializable()>修饰。
示例:一个连接数据库的配置信息
'配置信息
<Serializable()> Public Class Item
'初始默认值
Public ID As Integer = 0
Public Server As String = "(Local)"
Public Database As String = "NorthWind"
Public Tusted As Boolean = True
Public User As String = ""
Public Password As String = ""
End Class
第二步:配置处理的类。
说明:这个类是通用的。用到别的配置,你只需修改上面的配置信息类就可以了。它实现了存档和读取的功能,并转化为配置信息对象,操作起来较为方便。你可以添加内容加密的处理。
<Serializable()> Public Class Config
'默认ConnectionInfo的ID
Public ID As Integer
'必须是Public,XmlSerializer只对Pulbic变量作用
Public Items As Item()
Private m_Count As Integer = 0
'添加配置信息
Public Sub Add(ByVal ConnectionInfo As Item)
If ConnectionInfo Is Nothing Then Exit Sub
If m_Count > 0 Then
If Not Me.ConnectionInfo(ConnectionInfo.ID) Is Nothing Then
MsgBox(ID.ToString & "已存在")
Exit Sub
End If
End If
ReDim Preserve Me.Items(m_Count)
Me.Items(m_Count) = ConnectionInfo
m_Count += 1
End Sub
'取指定ID的配置信息
Public ReadOnly Property ConnectionInfo(ByVal ID As Integer) As Item
Get
Dim mItem As Item
Dim i As Integer
For i = 0 To m_Count - 1
If Me.Items(i).ID = ID Then
mItem = Me.Items(ID)
Exit For
End If
Next
Return mItem
End Get
End Property
'序列化并保存到指定文件
Public Sub SaveXmlFile(ByVal FileName As String)
If Me Is Nothing Then Exit Sub
Dim XmlWriter As New System.IO.StreamWriter(FileName, False)
XmlWriter.Write(SerializeClass.GetXML(Me))
XmlWriter.Close()
End Sub
'从指定文件读取反序列化转为对象
Public Function LoadXmlFile(ByVal FileName As String) As Config
Dim XmlReader As New System.IO.StreamReader(FileName, System.Text.Encoding.Default)
Dim mConfig As Config
mConfig = CType(SerializeClass.LoadXML(GetType(Config), XmlReader.ReadToEnd), Config)
XmlReader.Close()
mConfig.m_Count = mConfig.Items.Length
Return mConfig
End Function
End Class
就以上两步就可以了,下面这个类是用来序列化用的。
'这是用XmlSerializer序列化对象的类
Public Class SerializeClass
Public Shared Function GetXML(ByVal mObject As Object) As String
Dim oSerializer As New System.Xml.Serialization.XmlSerializer(mObject.GetType)
Dim oStringWriter As New System.IO.StringWriter
oSerializer.Serialize(oStringWriter, mObject)
Return oStringWriter.ToString
End Function
Public Shared Function LoadXML(ByVal mClass As Type, ByVal XML As String) As Object
Dim oSerializer As New System.Xml.Serialization.XmlSerializer(mClass)
Dim oStringReader As New System.IO.StringReader(XML)
Return oSerializer.Deserialize(oStringReader)
End Function
End Class
以下是使用方法示例:
'测试存配置文件
Private Sub TestSaveConfig()
Dim mConfig As Config = New Config
Dim mItem As Item
mItem = New Item
mConfig.Add(mItem)
mItem = New Item
With mItem
.ID = 1
.User = "Master"
.Password = "123456"
.Tusted = False
End With
mConfig.Add(mItem)
mConfig.SaveXmlFile(Application.StartupPath & "/Config.xml")
End Sub
'测试读配置文件
Private Sub TestLoadConfig()
Dim mConfig As Config = New Config
mConfig = mConfig.LoadXmlFile(Application.StartupPath & "/Config.xml")
'读取默认值的用户名
MsgBox(mConfig.Items(mConfig.ID).User)
'不妨修改一下配置
mConfig.ID = 1
mConfig.ConnectionInfo(0).Server = "Server"
mConfig.ConnectionInfo(1).Database = "Master"
'再存盘
mConfig.SaveXmlFile(Application.StartupPath & "/Config.xml")
End Sub
- 一种简便实效的配置文件读写方法
- 一种简便实效的配置文件读写方法
- 一种简便实效的配置文件读写方法
- struts类型转换的一种简便方法
- 一种简便获取iPhone IMEI 的方法
- 一种更新yum源的简便方法
- 读写配置文件的方法
- 一种非常简便的实现Android多线程池的方法
- Flash文字描边的一种简便方法
- 一种通过注册表简便修改IE代理服务器的方法
- 通过ODBC远程访问MySQL的一种简便方法
- VC下显示JPG,GIF图象的一种简便方法
- 编程创建XML文档的一种简便方法
- 一种保持VC对话框布局的简便方法
- 一种保持VC对话框布局的简便方法
- 一种保持VC对话框布局的简便方法
- 一种快捷简便的WIN CE界面定制方法
- 子窗口控制父窗口一种简便的方法
- 变革从关键流程入手
- 菜鸟必学建立隐藏的超级用户
- How to sort a ListView control by a column in Visual C#
- 做了一个c# document viewer插件
- Linux 系统中的超级权限的控制
- 一种简便实效的配置文件读写方法
- XQuery表达式之序列表达式(Sequence Expression)
- MDI窗体程序中防止子窗体被多次实例化——Singleton的C#实现
- 将网络上的文件下载到本机
- Tensilica公司简介
- ASP服务器的FSO设置
- C#的类型转换、字符格式转换及其他
- 内存管理内幕
- 活用 XP