vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: XmlSerialisierung einer List(Of T) 
Autor: Kuno60
Datum: 25.02.15 08:22

Ja genau, so ist es Richtig. Du musst immer die gesamte Klasse serialisieren.

So könnte es mit Deinem Beispiel aussehen.
Die Angabe von <XmlElement> und <XmlRoot> ist nur erforderlich, wenn die Namen der Xml-Datei sich von den Namen in der Klasse oder Struktur unterscheiden.

Public Class Verwaltung
 
  Public Structure Kunde
    Dim Kundennummer As Long
    Dim Vorname As String
    Dim Nachname As String
  End Structure
 
  <XmlElement("Kunde")>
  Public ListOfCustomers As New List(Of Kunde)
 
End Class
Und so die Xml-Datei erstellen:
  Public Sub SchreibeXml(obj As Object, pfad As String, ns As _
    XmlSerializerNamespaces)
    If obj Is Nothing Then Throw New ArgumentNullException("obj")
    Dim fs As IO.FileStream = Nothing
    Try
      fs = New IO.FileStream(pfad, IO.FileMode.Create, IO.FileAccess.Write)
      Dim xs As New Xml.Serialization.XmlSerializer(obj.GetType)
      xs.Serialize(fs, obj, ns) 'speichern
    Catch ex As Exception
      MsgBox(ex.Message & vbNewLine & pfad, MsgBoxStyle.Critical, _
        "Serialisation-" & obj.ToString)
    Finally
      If fs IsNot Nothing Then fs.Close()
    End Try
  End Sub
 
  Public Sub Speichern()
    Dim ordner = My.Computer.FileSystem.SpecialDirectories.Desktop
    Dim datei = IO.Path.Combine(ordner, "Test.xml")
    Dim ns As New Xml.Serialization.XmlSerializerNamespaces()
    'Hier eventuell weitere Namespace hinzufügen
    'ns.Add("kd", "http://www.beispiel.com/xmlschemas/v1")
    '------------------------------
    Dim v As New Verwaltung
    Dim k As New Verwaltung.Kunde
    k.Kundennummer = 1
    k.Vorname = "Hans"
    k.Nachname = "Meier"
    v.ListOfCustomers.Add(k)
    k.Kundennummer = 2
    k.Vorname = "Paul"
    k.Nachname = "Schnürschuh"
    v.ListOfCustomers.Add(k)
    '------------------------------
    SchreibeXml(v, datei, ns)
  End Sub
Dieses Beispiel erstellt diese Datei:
<?xml version="1.0"?>
<Verwaltung xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" _
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Kunde>
    <Kundennummer>1</Kundennummer>
    <Vorname>Hans</Vorname>
    <Nachname>Meier</Nachname>
  </Kunde>
  <Kunde>
    <Kundennummer>2</Kundennummer>
    <Vorname>Paul</Vorname>
    <Nachname>Schnürschuh</Nachname>
  </Kunde>
</Verwaltung>
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
XmlSerialisierung einer List(Of T)1.556sv0001023.02.15 17:48
Re: XmlSerialisierung einer List(Of T)1.114Kuno6024.02.15 05:59
Re: XmlSerialisierung einer List(Of T)1.103sv0001024.02.15 19:20
Re: XmlSerialisierung einer List(Of T)989sv0001025.02.15 07:59
Re: XmlSerialisierung einer List(Of T)1.058Kuno6025.02.15 08:22

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel