我需要将以下YAML反序列化为我的自定义类型。 YamlAlias属性似乎已过时,因此我将其替换为YamlMember。它会反序列化以下YAML失败,但以下情况除外:
host:
properties:
mem_size: 2048 MB
YamlDotNet.Core.YamlException:(行:21,列:13,Idx:524)-(行:21,列:13,Idx:524):反序列化期间的异常
----> System.Runtime.Serialization.SerializationException:在“ Toscana.Domain.HostProperties”类型上找不到属性“ mem_size”。
public class Host
{
public HostProperties Properties { get; set; }
}
public class HostProperties
{
[YamlMember(typeof(DigitalStorage))]
public string MemSize { get; set; }
}
最佳答案
Alias
是YamlMemberAttribute
类的属性,不在构造函数中。现在,我不知道您的DigitalStorage
类是什么样子以及string
是否将成功反序列化到它中(我对此表示怀疑),但是由于您的问题是添加别名,因此您应该这样做:
public class HostProperties
{
[YamlMember(typeof(DigitalStorage), Alias = "mem_size")]
public string MemSize { get; set; }
}
关于c# - 如何在YamlDotNet中的YamlMember上指定别名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37639619/