Protobuf-net сериализация неизменяемого массива с нулевым значениемC#

Место общения программистов C#
Ответить
Anonymous
 Protobuf-net сериализация неизменяемого массива с нулевым значением

Сообщение Anonymous »

Кажется, у меня возникли проблемы с сериализацией Nullable, ImmutableArray, который, как я думал, будет работать «из коробки».
например,

Код: Выделить всё

void Main()
{
var x = new Test() { Field = null };
var stream = new MemoryStream();
ProtoBuf.Serializer.Serialize(stream, x);
}

[ProtoContract]
public class Test
{
[ProtoMember(1, IsRequired = false)]
public ImmutableArray? Field {get; set;}
}
Бросает

Код: Выделить всё

System.InvalidOperationException:
No serializer defined for type: System.Nullable`1[System.Collections.Immutable.ImmutableArray`1[System.String]]
Если я удалю аспект, допускающий значение NULL, ? из поля, все будет работать нормально. Если я изменю поле на что-то другое, например, на строку?, это сработает. Есть ли что-то уникальное в Nullable ImmutableArray, чего мне не хватает?
Я могу изменить поля на значения, не допускающие значения NULL, но в идеале они допускают значение NULL, поскольку это отличает поле, которое вообще не установлено () по сравнению с полем, намеренно установленным пустым ().

Подробнее здесь: https://stackoverflow.com/questions/798 ... able-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»