Hier ist meine einfache Klasse, wo DigitalStorage eine binäre serializable Klasse ist. Sein Quellcode ist hier zu finden:Wie kann ich in YamlDotNet einen benutzerdefinierten Typ für die Serialisierung angeben?
https://github.com/QualiSystems/Toscana/blob/master/Toscana/Domain/DigitalStorage.cs
public class Host
{
public HostProperties Properties { get; set; }
}
public class HostProperties
{
[YamlAlias("mem_size")]
public DigitalStorage MemSize { get; set; }
}
Wenn ich versuche, die folgende YAML deserialisieren, es scheitert:
host:
properties:
mem_size: 4096 MB
Hier ist die Ausnahme:
YamlDotNet.Core.YamlException : (Line: 16, Col: 22, Idx: 396) - (Line: 16, Col: 29, Idx: 403): Exception during deserialization
----> System.InvalidCastException : Invalid cast from 'System.String' to 'Toscana.Domain.DigitalStorage'.
at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer.DeserializeValue(EventReader reader, Type expectedType, SerializerState state, IValueDeserializer nestedObjectDeserializer) in C:\projects\yamldotnet\YamlDotNet\Serialization\ValueDeserializers\NodeValueDeserializer.cs:line 75