如何告诉C#省略序列化期间默认属性的创建?

MrF*_*Fox 5 c# serialization

我有一个序列化为XML文件的类.有几个很少使用但始终创建​​的属性.如果我在XML中删除它们,反序列化仍然有效,因为它们具有默认值.

这些不必要的(bool)属性使XML更难阅读.

我可以告诉C#省略仍然具有默认值的元素或属性吗?

Row*_*haw 12

指定DefaultValueAttribute,如果值匹配,则不会输出.


Mar*_*ell 6

罗兰有简单价值的答案.对于更复杂的场景,您可以添加一个名为public bool ShouldSerializeFoo()(for property Foo)的方法- 它返回false,它不会被序列化.