使用对象内的对象

时间:2015-01-21 12:10:48

标签: yamldotnet

尝试使用YAMLDOTNET的序列化程序,遇到一些问题,而对象不仅仅是字符串,而且内部还有一个特殊的对象。

序列化时,我会得到一个{}字符串。例如,如果在Serializing an object graph示例中我们定义了一个结构地址。然后我们创建一个类Address Address的新对象,最终在收据中分配,结果也将是yaml文件上地址字段的{}。

还可以看到示例代码here。这将创建一个如下所示的输出:

receipt: Oz-Ware Purchase Invoice
date: 2007-08-06T00:00:00.0000000
customer:
  given: Dorothy
  family: Gale
items:
- part_no: A4786
  descrip: Water Bucket (Filled)
  price: 1.47
  quantity: 4
- part_no: E1628
  descrip: High Heeled "Ruby" Slippers
  price: 100.27
  quantity: 1
bill_to: &o0 {}
ship_to: *o0

所以bill_to将显示为{}

1 个答案:

答案 0 :(得分:1)

YamlDotNet.Serialization.Serializer不会将字段序列化为YAML输出。它适用于示例,因为它使用的是动态对象,而街道,城市和州是该对象的属性。

如果您将地址中的字段更改为属性,则会将其序列化,例如

public struct Address
{
    public string street { get; set; }
    public string city { get; set; }
    public string state { get; set; }
}

使用属性而不是公共字段也是最佳做法。