VB.NET에서 기존 XML 파일 역 직렬화

gotorg

XML 설정 파일을 읽고 쓰기 위해 XMLDocument 대신 XmlSerializer를 사용하도록 VB.NET 응용 프로그램을 변경하고 있으며 이전 버전과의 호환성을 유지하고 싶습니다.

다음은 XML 파일 내용의 샘플입니다.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <postHistory>
      <postFile>a.txt</postFile>
      <postFile>b.txt</postFile>
      <postFile>c.txt</postFile>
    </postHistory>
  </appSettings>
  <SettingsPath>d.txt</SettingsPath>
</configuration>

다음은 원본 파일을 올바르게 역 직렬화하는 클래스입니다.

Imports System.Xml.Serialization
Imports System.Collections.Generic

<XmlRoot("configuration")>
Public Class LocalSettings
  <XmlElement("appSettings")>
  Public appSettings As New postHistory()
  Public SettingsPath As String = ""
End Class

Public Class postHistory
  Public postHistory As New SubSettings()
End Class

Public Class SubSettings
  <XmlElement("postFile")>
  Public postHistory As New List(Of String)
End Class

다음은 파일 직렬화 해제에 사용되는 코드입니다.

  Public Shared Function GetLocalSettings(ByVal filePath As String) As LocalSettings
    Dim lSettings As New LocalSettings()

    Try
      Dim xs As New XmlSerializer(GetType(LocalSettings))
      Using fs As New FileStream(filePath, FileMode.Open)
        lSettings = xs.Deserialize(fs)
      End Using
    Catch ex As Exception
      ' Handle exception
    End Try

    Return lSettings
  End Function

이 솔루션은 작동하지만 어색합니다. 두 개의 하위 클래스 내에 'postHistory'목록을 중첩 할 필요가없는 역 직렬화하는 더 최적의 방법이 있습니까?

dbc

를 사용 XmlArrayAttribute(string name)하여 지정된 이름을 가진 외부 컨테이너 요소를 사용 하여 목록을 두 수준으로 직렬화하도록 지정할 수 있습니다 . 그런 다음 XmlArrayItemAttribute(string name)내부 요소 이름을 지정하는 데 사용할 수 있습니다 .

그러므로:

<XmlRoot("configuration")>
Public Class LocalSettings
  <XmlElement("appSettings")>
  Public appSettings As New postHistory()
  Public SettingsPath As String = ""
End Class

Public Class postHistory
  <XmlArray("postHistory")>
  <XmlArrayItem("postFile")>
  Public postHistory As New List(Of String)
End Class

이를 통해 SubSettings클래스를 제거 할 수 있습니다.

샘플 바이올린 .

자세한 내용은 속성을 사용하여 XML 직렬화 제어를 참조하십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C #에서 파일 XML 역 직렬화

분류에서Dev

클래스로 VB.Net Xml 역 직렬화

분류에서Dev

트리 노드에서 파생 된 XML 직렬화 / 역 직렬화

분류에서Dev

C #에서 JSON 파일 역 직렬화 및 직렬화

분류에서Dev

VB.Net/JSON-역 직렬화

분류에서Dev

이 XML 파일을 역 직렬화하고 데이터 가져 오기

분류에서Dev

JSON에서 VB.NET으로 목록에서 역 직렬화

분류에서Dev

StringReader 충돌에서 XML 역 직렬화

분류에서Dev

StringReader 충돌에서 XML 역 직렬화

분류에서Dev

Xamarin에서 XML 역 직렬화

분류에서Dev

XML에서 개체 역 직렬화로

분류에서Dev

파일에 대한 데이터 직렬화 / 역 직렬화

분류에서Dev

xml 문서를 역 직렬화 할 수 있지만 동일한 문서로 직렬화 할 수 없음

분류에서Dev

JMS 직렬 변환기-XML에서 비 반복 노드 구조를 역 직렬화

분류에서Dev

유연한 수의 속성으로 XML 파일 역 직렬화

분류에서Dev

C #을 사용하여 XML 파일에서 데이터를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

Json 파일 역 직렬화

분류에서Dev

JSON 파일 역 직렬화

분류에서Dev

파일에서 개체를 역 직렬화 및 재 직렬화하는 데 문제가있는 C # JSON.net

분류에서Dev

VB.NET의 JSON 직렬화 기술

분류에서Dev

VB.NET에서 변수 속성 이름으로 JSON 역 직렬화

분류에서Dev

C #에서 JSON 파일을 역 직렬화 할 때 StackOverflowException 발생

분류에서Dev

vb.net json.net 역 직렬화 문제

분류에서Dev

여러 개체를 단일 XML 파일로 직렬화 / 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

Java 및 Simple XML serialiser / deserialiser를 사용하여 XML 파일 역 직렬화

분류에서Dev

대괄호 VB.NET으로 JSON 역 직렬화

분류에서Dev

VB.Net 개체로 JSON 역 직렬화

분류에서Dev

XML 역 직렬화 퍼즐

분류에서Dev

SQL Server XML 역 직렬화

Related 관련 기사

  1. 1

    C #에서 파일 XML 역 직렬화

  2. 2

    클래스로 VB.Net Xml 역 직렬화

  3. 3

    트리 노드에서 파생 된 XML 직렬화 / 역 직렬화

  4. 4

    C #에서 JSON 파일 역 직렬화 및 직렬화

  5. 5

    VB.Net/JSON-역 직렬화

  6. 6

    이 XML 파일을 역 직렬화하고 데이터 가져 오기

  7. 7

    JSON에서 VB.NET으로 목록에서 역 직렬화

  8. 8

    StringReader 충돌에서 XML 역 직렬화

  9. 9

    StringReader 충돌에서 XML 역 직렬화

  10. 10

    Xamarin에서 XML 역 직렬화

  11. 11

    XML에서 개체 역 직렬화로

  12. 12

    파일에 대한 데이터 직렬화 / 역 직렬화

  13. 13

    xml 문서를 역 직렬화 할 수 있지만 동일한 문서로 직렬화 할 수 없음

  14. 14

    JMS 직렬 변환기-XML에서 비 반복 노드 구조를 역 직렬화

  15. 15

    유연한 수의 속성으로 XML 파일 역 직렬화

  16. 16

    C #을 사용하여 XML 파일에서 데이터를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

  17. 17

    Json 파일 역 직렬화

  18. 18

    JSON 파일 역 직렬화

  19. 19

    파일에서 개체를 역 직렬화 및 재 직렬화하는 데 문제가있는 C # JSON.net

  20. 20

    VB.NET의 JSON 직렬화 기술

  21. 21

    VB.NET에서 변수 속성 이름으로 JSON 역 직렬화

  22. 22

    C #에서 JSON 파일을 역 직렬화 할 때 StackOverflowException 발생

  23. 23

    vb.net json.net 역 직렬화 문제

  24. 24

    여러 개체를 단일 XML 파일로 직렬화 / 역 직렬화하는 방법은 무엇입니까?

  25. 25

    Java 및 Simple XML serialiser / deserialiser를 사용하여 XML 파일 역 직렬화

  26. 26

    대괄호 VB.NET으로 JSON 역 직렬화

  27. 27

    VB.Net 개체로 JSON 역 직렬화

  28. 28

    XML 역 직렬화 퍼즐

  29. 29

    SQL Server XML 역 직렬화

뜨겁다태그

보관