Vb.net 如何在VB中序列化列表?
我正在编写一个程序,获取“患者”的几个字段,并将数据序列化为XML。我收集的所有信息如下:Vb.net 如何在VB中序列化列表?,vb.net,visual-studio-2010,serialization,Vb.net,Visual Studio 2010,Serialization,我正在编写一个程序,获取“患者”的几个字段,并将数据序列化为XML。我收集的所有信息如下: Dim pacients As New List(Of Patients) Dim p As New Patients p.mFirstName = txtFirstName.ToString p.mlastName = txtLastName.ToString p.mInsurance = txtInsurance.ToString p.mDOB = txtDateOfBirth.ToString p.
Dim pacients As New List(Of Patients)
Dim p As New Patients
p.mFirstName = txtFirstName.ToString
p.mlastName = txtLastName.ToString
p.mInsurance = txtInsurance.ToString
p.mDOB = txtDateOfBirth.ToString
p.mEmail = txtEmail.ToString
p.mPhone = txtPhone.ToString
p.mPlanID = txtPhone.ToString
p.mSubID = txtSubID.ToString
Dim serial As New XmlSerializer(GetType(List(Of Patient)))
这是出现大错误的部分(这是由另一个“全部保存”按钮触发的,正如前面的代码是“添加到列表”按钮的一部分):
如果需要patients类,我将发布它。我发现了问题。这:
Dim serial As New XmlSerializer(GetType(Patients))
预期为患者的一个对象,需要将其更改为预期列表,如下所示:
Dim pacients As New List(Of Patients)
Dim p As New Patients
p.mFirstName = txtFirstName.ToString
p.mlastName = txtLastName.ToString
p.mInsurance = txtInsurance.ToString
p.mDOB = txtDateOfBirth.ToString
p.mEmail = txtEmail.ToString
p.mPhone = txtPhone.ToString
p.mPlanID = txtPhone.ToString
p.mSubID = txtSubID.ToString
Dim serial As New XmlSerializer(GetType(List(Of Patient)))
谢谢你的建议。这就可以了。。。您可以在列表中循环并每次调用此方法,还可以确保在patient类的顶部有serialize属性,这是必需的。另外,您的问题是因为您的gettype是针对您的patient类的,而不是您要传递以序列化的患者列表。另外,从您发布的代码的外观来看,您不需要列表,只需使用类对象并保存它
Public Sub SavePatient(Byval patients As Patients)
Dim writer As New System.Xml.Serialization.XmlSerializer(GetType(patients))
Dim file As New System.IO.StreamWriter(
"YOURPATH.xml")
writer.Serialize(file, patients)
file.Close()
End Sub
您是否已将
Serializable
属性添加到您的Patients
类中?另外,发布完整错误通常是个好主意。我认为您需要使用文件流,而不是streamwriter@DeanOC这就是它所说的“生成XML文档时出错”和“未处理InvalidOperationException”确保PatientFileName
是有效的路径,并且您具有写入权限there@Plutonix是的,我有许可证。当我逐个添加它们时,在单击“保存”按钮后,它会保存并附加到文件中。只有在我尝试附加一个列表之后,它才会抛出错误。