我正在用YamlDotNet序列化一个具有引用和值类型的对象。我想要完成的是,我的整数值零保留在输出的yaml中,但是空值将被丢弃。对于数值,EmitDefaults会舍弃“0”。我知道null是引用类型的默认值。Json.Net通过将其分解为以下属性解决了这一问题:
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Ignore,
有什么办法可以完成下面的任务吗?
class foo
{
int index {get;set;}
string bar {get;set;}
}
new foo { index =0; bar = null }
would yield the following yaml:
index: 0
new foo { index =0; bar = "bar" }
would yield the following yaml:
index: 0
bar: bar谢谢
发布于 2017-03-06 22:57:31
不确定这是否是您想要的,但这就是我强制序列化所有默认值的方法:
public override string ToString()
{
var builder = new SerializerBuilder();
builder.EmitDefaults(); // Force even default values to be written, like 0, false.
var serializer = builder.Build();
var strWriter = new StringWriter();
serializer.Serialize(strWriter, this);
return strWriter.ToString();
}https://stackoverflow.com/questions/38752867
复制相似问题