【发布时间】:2016-12-05 17:15:24
【问题描述】:
我是 Visual Studio 2015 (VB) 上的 XML 初学者。反序列化仅适用于 valueA 和 valueB。但是账户是空的。我不明白这个问题。我能做些什么?或者反序列化这个 XML 文件的正确方法是什么,我如何访问 vb 中的 var?谢谢!!!
我已关注 XML 文件:
<?xml version="1.0" encoding="utf-16"?>
<clsSettings>
<valueA>20</valueA>
<valueB>5</valueB>
<Accounts>
<Account>
<User>tralala</User>
<Pw>tralala</Pw>
</Account>
<Account>
<User>triliki</User>
<Pw>trierer</Pw>
</Account>
</Accounts>
</clsSettings>
这是我的班级:
Public Class clsSettings
Public valueA As String
Public valueB As String
Public MyAccounts As Accounts
End Class
Public Class Accounts
Public MyAccount As List(Of Account)
End Class
Public Class Account
Public User As String
Public Pw As String
End Class
她是代码:
Dim objSerializer As XmlSerializer
Dim objStream As System.IO.FileStream
If My.Computer.FileSystem.FileExists("settings.xml") Then
objStream = New System.IO.FileStream("settings.xml", IO.FileMode.Open)
objSerializer = New XmlSerializer(GetType(clsSettings))
Try
Settings = CType(objSerializer.Deserialize(objStream), clsSettings)
readSettings()
Catch ex As InvalidOperationException
SetText(txt_status, "XML ERROR " + ex.Message)
Catch ex As SerializationException
SetText(txt_status, "XML ERROR " + ex.Message)
Catch ex As IOException
SetText(txt_status, "XML IO ERROR " + ex.Message)
Finally
objStream.Close()
End Try
end if
【问题讨论】:
-
该 XML 示例是如何创建的?它在几个方面与那些序列化程序设置不匹配。帐户将是空的,因为没有列表实例来存储任何内容 - 它只是在该代码中声明为列表。此外,将密码存储为文本也是一个非常糟糕的主意。
标签: xml vb.net serialization visual-studio-2015