如何在 YamlDotNet 的 YamlMember 上指定别名?
How to specify alias on YamlMember in YamlDotNet?
我需要将以下 YAML 反序列化为我的自定义类型。 YamlAlias 属性似乎已过时,因此我将其替换为 YamlMember。它无法反序列化以下 YAML,但出现以下异常:
host:
properties:
mem_size: 2048 MB
YamlDotNet.Core.YamlException : (Line: 21, Col: 13, Idx: 524) - (Line: 21, Col: 13, Idx: 524): Exception during deserialization
----> System.Runtime.Serialization.SerializationException : Property 'mem_size' not found on type 'Toscana.Domain.HostProperties'.
public class Host
{
public HostProperties Properties { get; set; }
}
public class HostProperties
{
[YamlMember(typeof(DigitalStorage))]
public string MemSize { get; set; }
}
Alias
是 YamlMemberAttribute
class 的 属性,它不在构造函数中。现在,我不知道你的 DigitalStorage
class 是什么样子以及 string
是否会成功反序列化到它(我怀疑),但因为你的问题是添加别名,这就是你的做法:
public class HostProperties
{
[YamlMember(typeof(DigitalStorage), Alias = "mem_size")]
public string MemSize { get; set; }
}
我需要将以下 YAML 反序列化为我的自定义类型。 YamlAlias 属性似乎已过时,因此我将其替换为 YamlMember。它无法反序列化以下 YAML,但出现以下异常:
host: properties: mem_size: 2048 MB
YamlDotNet.Core.YamlException : (Line: 21, Col: 13, Idx: 524) - (Line: 21, Col: 13, Idx: 524): Exception during deserialization ----> System.Runtime.Serialization.SerializationException : Property 'mem_size' not found on type 'Toscana.Domain.HostProperties'.
public class Host
{
public HostProperties Properties { get; set; }
}
public class HostProperties
{
[YamlMember(typeof(DigitalStorage))]
public string MemSize { get; set; }
}
Alias
是 YamlMemberAttribute
class 的 属性,它不在构造函数中。现在,我不知道你的 DigitalStorage
class 是什么样子以及 string
是否会成功反序列化到它(我怀疑),但因为你的问题是添加别名,这就是你的做法:
public class HostProperties
{
[YamlMember(typeof(DigitalStorage), Alias = "mem_size")]
public string MemSize { get; set; }
}