首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YamlDotNet SerializationOptions.EmitDefaults行为

YamlDotNet SerializationOptions.EmitDefaults行为
EN

Stack Overflow用户
提问于 2016-08-03 20:16:50
回答 1查看 1.6K关注 0票数 2

我正在用YamlDotNet序列化一个具有引用和值类型的对象。我想要完成的是,我的整数值零保留在输出的yaml中,但是空值将被丢弃。对于数值,EmitDefaults会舍弃“0”。我知道null是引用类型的默认值。Json.Net通过将其分解为以下属性解决了这一问题:

NullValueHandling = NullValueHandling.Ignore,

DefaultValueHandling = DefaultValueHandling.Ignore,

有什么办法可以完成下面的任务吗?

代码语言:javascript
复制
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

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-03-06 22:57:31

不确定这是否是您想要的,但这就是我强制序列化所有默认值的方法:

代码语言:javascript
复制
    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();
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38752867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档