如何在YamlDotNet中的YamlMember上指定别名?

时间:2016-06-05 07:45:07

标签: c# yaml 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):反序列化期间的异常     ----> System.Runtime.Serialization.SerializationException:Property' mem_size'找不到类型' Toscana.Domain.HostProperties'。

public class Host
{
    public HostProperties Properties { get; set; }
}

public class HostProperties
{
    [YamlMember(typeof(DigitalStorage))]
    public string MemSize { get; set; }
}

1 个答案:

答案 0 :(得分:3)

AliasYamlMemberAttribute类的属性,它不在构造函数中。现在,我不知道你的DigitalStorage类是什么样的,以及string是否会被成功反序列化(我对此表示怀疑),但由于你的问题是添加一个别名,这就是你这样做:

public class HostProperties
{
    [YamlMember(typeof(DigitalStorage), Alias = "mem_size")]
    public string MemSize { get; set; }
}