我用于我的程序的方法是将我的配置值保存在使用DataSet中的DataTable存储值的类中。当我想保存它时,我将DataSet.WriteXML()用于用户想要的任何文件名。我现在的使用非常简单(一个DataTable与键,值列),但它很容易扩展到多个相关的DataTables与特定列的各种信息。 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")
代码比试图解释一个概念就轻松多了。 :-)
听起来像一个很好的策略。谢谢! – larryq 2009-10-18 16:59:50