Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何在VB中序列化列表?_Vb.net_Visual Studio 2010_Serialization - Fatal编程技术网

Vb.net 如何在VB中序列化列表?

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.

我正在编写一个程序,获取“患者”的几个字段,并将数据序列化为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.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是的,我有许可证。当我逐个添加它们时,在单击“保存”按钮后,它会保存并附加到文件中。只有在我尝试附加一个列表之后,它才会抛出错误。