| 

.NET C# Java Javascript Exception

6
Als Ergänzung zu meiner vorherigen Frage Wie kann der Name einer XML-serialisierten Liste über Attribute geändert werden?, habe ich vererbte Objekte und einen generischen Serializer.
Nun möchte ich, dass alle Elemente den XML-Namen "Vehicle" erhalten. Kann das auch über Attribute gesteuert werden?

public class VehicleCollection<T> : List<T>
{
}

[XmlType]
public class Vehicle
{
[XmlAttribute(AttributeName = "id")]
public Guid Id;

[XmlElement]
public string Name;
}

[XmlType]
public class Car : Vehicle
{
[XmlElement]
public string Extended;
}


Sobald ich einen XmlTypeName vergebe erhalte ich eine Fehlermeldung im Serializer.
News:
03.11.2011
Jürgen Luhr 7,1k 1 9
Soll es irgendeine Möglichkeit geben, das XML später wieder zu deserialisieren und dann wieder Cars und Vehicles zu haben?
Matthias Hlawatsch 03.11.2011
Eigentlich ja.
Jürgen Luhr 03.11.2011
1 Antwort
3
Gib

[XmlInclude(typeof(Car))]

entweder über der Vehicle-Klasse an, oder mach es Deinem Serializer bekannt. Ersteres dürfte einfacher sein (und damit hab ich es ausprobiert), aber auf diese Weise eine abgeleitete Klasse bei der Basisklasse "bekannt" zu machen, hat natürlich einen leichten smell.
03.11.2011
Matthias Hlawatsch 13,2k 4 9
Ok. Aufgrund deiner Antwort kam ich zu dem Entschluss, dass mein Vorhaben kein guter Stil ist und gehe einer anderen Lösung nach. Dennoch danke für die funktionierende Lösung.
Jürgen Luhr 04.11.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH