我正在发现 yaml 和 yamldotnet。对不起,如果这是一个非常基本的问题:
使用单个感叹号在 yaml 中定义用户定义的类型是否有意义,例如:
红色:!color { 红色:255,绿色:0,蓝色:0 }
YamlDotNet 如何反序列化?换句话说,有没有办法确保类型颜色映射到.net 中的相应颜色类型?
从我对下面例子https://dotnetfiddle.net/HD2JXM的理解来看,YamlDotNet 使用 yaml 文档和 .net 类之间的隐式对应关系,将 yaml 属性映射到对应的类属性(如示例所示,这个可以自定义带注释)。但是没有进行类型检查。
进一步澄清事情。我有以下 yaml 文档,它对应于一组小部件:
controls:
- Button:
id: 1
text: Hello Button World
- Label:
id: 2
text: Hello Label World
- TextView:
id: 3
content: >
This is some sample text that will appear
in a text view.
我想将它映射到 c# 中相应的类型层次结构:
class AOPage
{
public IList<AOControl> Controls { get; set; }
}
class AOControl
{
public int Id { get; set;}
}
class AOLabel : AOControl
{
public String Text { get; set;}
}
class AOButton : AOControl
{
public String Text { get; set;}
}
class AOTextView : AOControl
{
public String Contents{ get; set;}
}
请注意,这里有一个类似的问题海报:使用自定义类型解析器,尚未得到回答。
谢谢!