Jag har en enkel klass emd 2 publika properties. Hej. okej här kommer den då (inte så avancerad): Testade att köra koden, och jag fick följande utdata med v1.1 av ramverket Det är inte bara så enkelt att du inte satt ett värde på den andra propertyn? XML skippar ju av utrymmesskäl element som inte har ett värde... Ja så är det ju. :-) Serialization
När jag försöker serialisera ner en array av sådana kommer bara den ena propertyn med:
<code>
<Serializable()> _
Public Class SerializableProperty
Private myName As String
Private myValue As String
Public Sub New()
End Sub
Public Sub New(ByVal _name As String, ByVal _value As String)
Me.PropertyName = _name
Me.PropertyValue = _value
End Sub
Public Property PropertyName() As String
Get
Return Me.myName
End Get
Set(ByVal Value As String)
Me.myName = Value
End Set
End Property
Public Property PropertyValue() As String
Get
Return Me.myValue
End Get
Set(ByVal Value As String)
Me.myValue = Value
End Set
End Property
End Class
</code>
Selialisering av en array med sådana ger:
<code>
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfSerializableProperty xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SerializableProperty>
<PropertyName>Prop1</PropertyName>
</SerializableProperty>
<SerializableProperty>
<PropertyName>Prop2</PropertyName>
</SerializableProperty>
<SerializableProperty>
<PropertyName>Prop3</PropertyName>
</SerializableProperty>
<SerializableProperty xsi:nil="true" />
</ArrayOfSerializableProperty>
</code>
Varför?Sv: Serialization
har du koden för serializeringen? Behöver se på den för att förstå bättre hur du utför din serializering.
//Johan NSv: Serialization
<code>
Dim ser As New Xml.Serialization.XmlSerializer(GetType(SerializableProperty()))
Dim writer As New IO.StringWriter
Dim sprops() As SerializableProperty
sprops = GetAnArrayOfSerializableProperties()
ser.Serialize(writer, sprops)
</code>Sv: Serialization
<code>
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfSerializableProperty xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SerializableProperty>
<PropertyName>Prop1</PropertyName>
<PropertyValue>Val1</PropertyValue>
</SerializableProperty>
<SerializableProperty>
<PropertyName>Prop2</PropertyName>
<PropertyValue>Val2</PropertyValue>
</SerializableProperty>
<SerializableProperty>
<PropertyName>Prop3</PropertyName>
<PropertyValue>Val3</PropertyValue>
</SerializableProperty>
</ArrayOfSerializableProperty>
</code>
MSSv: Serialization
Sv: Serialization
Såg inte att det fanns en standard konstruktor, läste bara den med värden. så jag antog att man var tvungen att sätta båda. Självklart tar den inte med saker som inte har satta värden, då det skulle vara slöseri på resurser.
//Johan N