我用于我的程序的方法是将我的配置值保存在一个类中,该类使用 DataSet 中的 DataTable 来存储值。当我想保存它时,我使用 DataSet.WriteXML() 到用户想要的任何文件名。
我目前的使用非常简单(一个带有键、值列的数据表),但它很容易扩展到多个相关的数据表,其中包含用于各种信息的特定列。 DataSet 处理文件 io。
然后用 DataSet.ReadXML() 重新读入就轻而易举了。
与序列化类相比,此方法的一个优点是它更容易处理从程序的先前版本保存的文件。您可以在表格中为用于保存它的程序版本设置一个值,因此您的新版本将知道旧文件不会在新版本中添加任何值 - 它可以适当地设置它们以更新文件版本。
如果您向一个类(值、方法)添加新功能,那么它的序列化文件将与早期版本不同 - 不确定处理这些旧文件是否容易。
这是一个简单的example class。
这样使用,生成file like this:
To create a new one:
Dim UIcfg As UIsettings = New UIsettings("TestSettings.cfg")
UIcfg.setGeneralValue("Version", "1.0.0")
UIcfg.setGeneralValue("Author", "Bobs YourUncle")
UIcfg.setFieldValues("FirstName", "Left", "1")
UIcfg.setFieldValues("LastName", "Right", "1")
UIcfg.setFieldValues("ShoeSize", "Left", "2")
UIcfg.setFieldValues("ShoeColor", "Left", "3")
UIcfg.Save()
To get values from it:
Dim value As String = ""
Dim values As String = ""
value = UIcfg.getGeneralValue("Author")
values = UIcfg.getFieldValues("FirstName")
代码比试图解释一个概念要容易得多。 :-)