vb.net - 是否有写入/导出列表/类项目值的功能?
问题描述
从外部应用程序中提取数据并将其写入包含多个子列表项的列表,这是一个缩小到主列表创建的示例:
Public Class clMain
Public lsLevel_1 As New List(Of clLevel_1)
End Class
Public Class clLevel_1
Public sgName As String
Public lsLevel_2 As New List(Of clLevel_2)
End Class
Public Class clLevel_2
Public sgName As String
Public lsLevel_3 As New List(Of clLevel_3)
End Class
Public Class clLevel_3
Public sgName As String
Public sgComment As String
End Class
Module Code
Sub Main()
Dim lv_clMain As clMain = New clMain
For lv_i16Level_1 = 10 To 11
Dim lv_clLevel_1 As New clLevel_1
lv_clLevel_1.sgName = "Level 1: " & lv_i16Level_1
For lv_i16Level_2 = 20 To 21
Dim lv_clLevel_2 As New clLevel_2
lv_clLevel_2.sgName = "Level 2: " & lv_i16Level_2
For lv_i16Level_3 = 30 To 31
Dim lv_clLevel_3 As New clLevel_3
lv_clLevel_3.sgName = "Level 3: " & lv_i16Level_3
lv_clLevel_2.lsLevel_3.Add(lv_clLevel_3)
Next
lv_clLevel_1.lsLevel_2.Add(lv_clLevel_2)
Next
lv_clMain.lsLevel_1.Add(lv_clLevel_1)
Next
End Sub
End Module
一旦列表被“填充”,我想将值写入/导出到文件中。什么是完成这项任务的好方法?我认为创建一个lv_clMain
作为参数的函数。但是 aslv_clMain
不是集合类型,它可以包含几个条目,lsLevel_1
我对正确的方法有些迷茫。
解决方案
感谢用户Hursey,我找到了使用 XML 序列化的解决方案。
Function SerializeXml(ByVal obData As Object, ByVal sgFileName As String, tyData As Type)
Dim obXmlSerializer As System.Xml.Serialization.XmlSerializer = New System.Xml.Serialization.XmlSerializer(tyData)
Dim obSW As System.IO.TextWriter = New System.IO.StreamWriter(sgFileName)
obXmlSerializer.Serialize(obSW, obData)
obSW.Close()
End Function
推荐阅读
- html - 我可以获取所选选项的文本并将其存储在变量而不是选择选项值中吗
- c++ - 未解析的外部符号,对象指针数组
- three.js - 如何使用三个.js 在 Canvas 上覆盖具有给定坐标 X、Y、Z 的 3D 对象
- python - 如何模拟 tcp 服务器没有响应
- r - 无法在 conda 下加载 libRlapack.so 和 libRblas.so
- c# - C# NxOpen - 查找活动工作部件中的所有功能组
- firebase - 仅存储上传到 Firebase 存储的文件的“文件夹名/文件名.jpg”信息是否安全?
- python - 无法从 Python 2.7 访问 PySide2
- symfony - Bazinga 翻译包返回键
- flutter - 安装 Zefyr(Flutter) 时出错找不到方法:'SystemNavigator.routeInformationUpdated'