Jag har två klasser 1. RoomsAvailable och 2. RoomAvailable. Jag vill placera 2. i en lista som ligger i 1. För att spara bytes så använder jag mig av attribut. Problemet jag har är att klassen 2. får inte sitt rätta attribut när det ligger i en lista - den får sitt origingalnamn när den serialiseras. Se klasserna nedan och resultatet:Serialisering och attribut
Imports System.Xml
Imports System.Xml.Serialization
''' <summary>
''' Contains a list of all Rooms where people are online in
''' </summary>
''' <remarks></remarks>
<System.Serializable()> Public Class RoomsAvailable
Public Rooms As New List(Of RoomAvailable)
End Class
Imports System.Xml
Imports System.Xml.Serialization
<System.Serializable(), XmlRootAttribute("RA")> Public Class RoomAvailable
Private guidRoomID As Guid
Private strName As String
<XmlElementAttribute("RID")> Public Property RoomID() As Guid
Get
Return guidRoomID
End Get
Set(ByVal value As Guid)
guidRoomID = value
End Set
End Property
<XmlElementAttribute("N")> Public Property Name() As String
Get
Return strName
End Get
Set(ByVal value As String)
strName = value
End Set
End Property
<XmlElementAttribute("U")> Public Users As New List(Of Guid)
End Class
Resultat:
<?xml version="1.0" encoding="utf-8"?><RoomsAvailable xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><Rooms><RoomAvailable><U>10206637-e0af-4312-99b8-2faaff598883</U><U>ef74e12b-5dfd-44d7-80e8-527fa9aaffc0</U><RID>77611d40-f111-49bf-9bf7-ff456bfa64fe</RID><N>TestRoom</N></RoomAvailable></Rooms></RoomsAvailable>