Compact Framework 配置 XML 文件读写,类似 appSettings





3.00/5 (1投票)
如何在 Windows Mobile 开发中使用 XML 文件读取和写入应用程序设置

引言
提供的代码用于将 XML 文件用作数据存储(速度快)。
它类似于 .NET Framework 的 appSettings
类,但专门用于 compact framework。它 100% 兼容且非常轻量级(与 SQLCE 相比)。它解决了在任何 CFNet 设备中永久存储与应用程序相关的数据(不仅是设置)的问题,因此您可以使用此类在客户端 Windows Mobile 智能设备中存储其他类型的数据。
背景
这很容易移植到 C#。这段代码 - 针对 VB.NET - 如果不存在 XML 文件,则会创建一个 XML 文件。它非常容易使用,只需不到一分钟,因为您有一个默认的 XML 设置文件,该文件位于您可以轻松自定义的字符串变量中(位于 *#MyAppSetting.vb* 中)。**使用该类,您可以创建/存储、加载和更新通过 XML 传输的数据**。您可以添加应用程序所需的所有 *'数据字段'*,并以简单的 1 或 2 种方式进行管理
- 快速:直接在包含 XML 作为文本的变量字符串上编写 *所需* 的数据字段(位于 *#MyAppSetting.vb* 中)
- 具有集成的智能感知:只需为所需的每个数据或设置编写 1 个属性,如下所示
'Within class
Public Property YourRequiredData() As TypeNeeded
Get
Return Me.ListItems.Get("YourRequiredData")
End Get
Set(ByVal value As TypeNeeded)
Me.ListItems.Set("YourRequiredData", value)
End Set
End Property
使用代码
它非常易于使用,并且文档完善(我认为)。只需将类 *MyAppSetting.vb* 添加到您的项目中,然后
'At the top of the form, just below form class declaration
Dim MyAppSettings As New MyAppSettings
对于上面的实例,您可以有选择地传递 args; Path 字符串和 FileName 字符串来查找/创建 *(查看提供的代码以获取更多信息)*。如果该类未找到任何 XML 文件,则会自动创建一个,随时可以使用。什么?默认 XmlDefaultConfig
....在该类中有一个 var
,其中包含您可以自定义的默认 XML 配置(appSettings
选项卡中的所有自定义代码,遵循格式)
Private XmlDefaultConfigurationFileString As String = _
"<?xml version=""1.0"" encoding=""utf-8"" ?>" & _
"<configuration>" & _
"<appSettings>" & _
"<add key=""FileCreated"" value=""" & Now & """ />" & _
"<add key=""FileModified"" value="""" />" & _
"<add key=""UserName"" value="""" />" & _
"<add key=""LoginCount"" value=""0"" />" & _
"</appSettings>" & _
"</configuration>"
现在您可以随时加载数据
'Code to Load data
Dim YourRequiredData As AnyType = MyAppSettings.YourRequiredData 'if you write that
'property/per/ as indicated above at the top of document
Dim YourRequiredDataWithoutTypeAnyProp As AnyType = _
CType(MyAppSettings.ListItems("YourRequiredDataWithoutTypeAnyProp"), AnyType)
您可以通过执行以下操作来保存
'Code to Save/Update data to xml settings
MyAppSettings.YourRequiredData = "new data to store .."
MyAppSettings.ListItems("YourRequiredDataWithoutTypeAnyProp") = Now.today 'for example
MyAppSettings.SaveXmlCurrentConfiguration()
关注点
我编写了 3 种不同的方法来保存 XML 默认文件(您可以实现这些方法以在另一种方法中更新或保存)。它们位于以下 enum
中
Enum enumXmlSaveMethod
StreamWrite = 1 'Basic
XmlTextWriter = 2 'Good
XmlDocument = 3 'Good as knowledge
End Enum
Private XmlSaveMethod As enumXmlSaveMethod = enumXmlSaveMethod.XmlDocument
您只需更改最后的分配即可尝试这 3 种方法。
历史
剩下的就是应用 3 种不同的保存方法 - 如果您想要 - 对于
Public Function SaveXmlCurrentConfiguration_
(Optional ByVal StrPath As String = Nothing, _
Optional ByVal StrFilename As String = "AppSettings.xml")
现在仅适用于
Public Function SaveXmlDefaultConfigurationFile(ByVal FilePath As String, _
Optional ByVal XmlConfigurationFileString As String = Nothing) As Boolean
我只应用于一个 sub
以构建和显示更少的代码,以便开发人员可以查看和选择。
这是我为 CodeProject 社区构建的第一个条目,大约花费 4 个小时,包括测试,以及接近 2 个小时的文档和上传。我将编写基于其他人的代码 - 包括 SaveSettings.aspx 中的 pbrroks 和 http://msdn.microsoft.com/en-us/library/aa446526.aspx 中的 Microsoft,以使我们的移动项目能够快速使用 config.data
。
我希望你喜欢它。 - 如果您进行故障排除,请发布任何错误!
Alejandro B. Martin
历史
- 2010 年 1 月 13 日th:初始帖子