#protobuf-net
Вопрос:
Целочисленное значение, равное 0, сериализуется как null. похоже, что 0 принимается по умолчанию и игнорируется во время сериализации. Есть ли способ решить эту проблему?
Ответ №1:
По умолчанию protobuf-net следует соглашениям proto3 о нулевом===по умолчанию===не сериализованном, но вы можете переопределить это поведение, используя IsRequired
на ProtoMemberAttribute
:
[ProtoMember(42, IsRequired = true)]
public int Foo {get;set;}
В качестве альтернативы, в более сложных сценариях вы можете использовать «условную сериализацию» (этот же подход работает с широким спектром сериализаторов).:
[ProtoMember(42)]
public int Foo {get;set;}
public bool ShouldSerializeFoo() { /* your own rules here */ }