ichWie XML-Attribut, um benutzerdefiniertes Objekt während der Deserialisierung in C# mit XmlSerializer
InvalidCastException konvertieren: Wert ist kein Cabrio Objekt: System.String zu IdTag
beim Versuch, das XML-Attribut deserialisieren.
Hier ist die Probe xml:
<?xml version="1.0" encoding="windows-1250"?>
<ArrayOfItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Item Name="Item Name" ParentId="SampleId" />
</ArrayOfItem>
Beispielklassen:
public class Item
{
[XmlAttribute]
public string Name { get; set; }
[XmlAttribute]
public IdTag ParentId { get; set; }
}
[Serializable]
public class IdTag
{
public string id;
}
Die Ausnahme von Convert.ToType()
Methode ausgelöst wird (die von XmlSerializer
genannt). AFAIK gibt es keine Möglichkeit, IConvertible
Schnittstelle für System.String
"zu implementieren", um zu IdTag
zu konvertieren. Ich weiß, dass ich eine Proxy-Eigenschaft implementieren kann:
Gibt es einen anderen Weg?
Definitiv eine Verbesserung - verlagert 'neues IdTag (..)' von Getter zum Eigentümer des Klassenkonstruktors. Vielen Dank. –