Ошибка при сериализации набора данных с помощью protobuf-net - PullRequest
2 голосов
/ 20 января 2011

Я пытаюсь использовать protobuf-net для сериализации набора данных, но получаю следующее сообщение об ошибке:

Необработанное исключение: System.InvalidOperationException: нет подходящая кодировка DataSet по умолчанию найденный. в ProtoBuf.Serializer.ThrowNoEncoder (DataFormat формат, тип valueType) в ProtoBuf.Property.PropertyFactory.CreateProperty [Т] (Тип тип, формат данных и формат, Опции MemberSerializationOptions)
в ProtoBuf.Property.PropertyFactory.Create [Т] (MemberInfo член) в ProtoBuf.Serializer`1.Build ()

Ниже используется код

    [ProtoContract]
    public class Packet
    {
        [ProtoMember(1)]
        public DataSet Data { get; set; }

        [ProtoMember(2)]
        public string Name { get; set; }

        [ProtoMember(3)]
        public string Description { get; set; }
    }


    using (var fs = new FileStream("test0.txt", FileMode.Create))
    {
       Serializer.Serialize(fs, packet);
       Console.WriteLine("Total bytes with protobuf-net = " + fs.Length);
    }

1 Ответ

1 голос
/ 20 января 2011

DataSet не является на самом деле контрактом на данные, и в "v1" нет поддерживаемой реализации (код, доступный как предварительно собранный dll).Я, однако, немного поиграл в "v2" здесь , который может представлять интерес, включая диапазон метрик для сравнения / принятия решений.

...