2014-09-19 3 views
0

"환자"의 여러 필드를 사용하여 데이터를 XML로 직렬화하는 프로그램을 작성 중입니다. 다음과 같이 내가 모든 정보를 잡는 오전 :VB에서 List를 직렬화하는 방법은 무엇입니까?

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 

을 그리고 이것은 큰 오류가있는 부분 (이는 코드는 전에 '에 추가의 일부로서 다른'모두 저장 '버튼에 의해 트리거입니다 목록 '버튼) :

환자 클래스가 필요한 경우 게시 할 것입니다.

+0

'Serializable' 속성을'Patients' 클래스에 추가 했습니까? 또한 전체 오류를 게시하는 것이 좋습니다. – DeanOC

+0

필자는 Streamwriter가 아니라 파일 스트림을 사용해야한다고 생각합니다. – Plutonix

+0

@DeanOC 말 그대로 "XML 문서를 생성하는 중에 오류가 발생했습니다"및 "InvalidOperationException이 처리되지 않았습니다." – user1404664

답변

0

문제점을 발견했습니다. 이 :

Dim serial As New XmlSerializer(GetType(Patients)) 

환자의 하나 개의 객체를 기대하고있다

이 다음과 같이 목록을 기대하는 변경해야합니다 : 모든 제안

Dim serial As New XmlSerializer(GetType(List(Of Patient))) 

감사합니다.

0

이 작업을 수행해야합니다. 목록을 반복하여 매번이 메소드를 호출 할 수 있으며, 환자 클래스 상단에 serialize 속성이 있는지 확인해야합니다. 또한 귀하의 gettype은 환자 클래스에 대한 것이기 때문에 귀하의 문제는 귀하의 직렬화에 대한 환자 목록이 아니기 때문입니다. 또한 당신이 게시 한 코드의 모습에서 목록을 필요로하지 않고 단지 클래스 객체를 사용하고 저장하면됩니다 ...

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 
관련 문제