2016-06-05 4 views
0

다음 YAML을 사용자 지정 형식으로 deserialize해야합니다. YamlAlias ​​속성은 쓸모없는 것 같아서 YamlAember로 바꿨습니다.YamlDotNet에서 YamlMember에 별칭을 지정하는 방법은 무엇입니까?

host: 
     properties: 
     mem_size: 2048 MB 

YamlDotNet.Core.YamlException을 : 이것은 아래 제외한 다음 YAML 역 직렬화 실패 (라인 21, 골 : 13 IDX : 524) - (라인 21, 골 : 13 Idx : 524) : deserialization 중 예외 ----> System.Runtime.Serialization.SerializationException : 'mem_size'속성이 'Toscana.Domain.HostProperties'유형에 없습니다. Alias

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

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

답변

2

는 생성자에없는의 YamlMemberAttribute 클래스의 속성입니다. 이제 DigitalStorage 클래스가 어떻게 보이는지, 그리고 string이 성공적으로 비 직렬화 될지는 모르지만 (별표가 있지만) 별칭을 추가하는 것이므로 다음과 같이 수행 할 수 있습니다.

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