Archief - [PROG]VB.NET Serialisatie van een classe die overerft van List(Of)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

dieterm

Legacy Member
Hallo,

Ik heb een classe die overerft van List(Of T). Deze classe ziet er als volgt uit:
Code:
<Serializable()> Public Class DBObjectList(Of T)
    Inherits List(Of T)

    Private _last_id As Integer = 0

    Public Sub New()
        MyBase.New()
    End Sub
End Class

Als ik een instantie van deze klasse wil opslaan in xmlformaat (in een bestand), dan worden enkel de items van de List(Of T) opgeslagen, maar niet mijn variabele _last_id.

Het opslaan doe ik als volgt:
Code:
Dim testLijst as new DBObjectList(Of String)
Dim Serializer As New Serialization.XmlSerializer(GetType(DBObjectList(Of String)))
Dim DataFile As New FileStream("bestand.xml", FileMode.Create, FileAccess.ReadWrite, FileShare.None)
Serializer.Serialize(DataFile, testLijst )
DataFile.Close()
DataFile.Dispose()
DataFile = Nothing

Het resultaat dat ik dan krijg is:
Code:
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>

Terwijl ik eigelijk dit wil:
Code:
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<_last_id>0</_last_id>
</ArrayOfString>

Weet iemand wat ik verkeerd doe?

Skarr

Legacy Member
kzou het moeten opzoeken maar ik dacht dat private variabelen niet worden geserialiseerd by default.

maak er public van of kunt eens proberen met expliciet te includen erboven
[XmlElement("last_id")]
Private _last_id As Integer = 0

Albireo

Legacy Member
Volgens mijn "Developer's Cookbook" worden bij XML-serialisatie private velden niet geserialiseerd, enkel de public velden. Binary serialisatie daarentegen slaat wel de private velden op.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan