Ошибка при сериализации набора данных с помощью protobuf-net

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

Необработанное исключение: System.InvalidOperationException: не найдено подходящей кодировки набора данных по умолчанию. в ProtoBuf.Serializer.ThrowNoEncoder(формат DataFormat, тип valueType) в ProtoBuf.Property.PropertyFactory.CreateProperty[T](тип типа, формат данных и формат, параметры MemberSerializationOptions)
в ProtoBuf.Property.PropertyFactory.Create[T](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);
    }

person stackoverflowuser    schedule 20.01.2011    source источник


Ответы (1)


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

person Marc Gravell    schedule 20.01.2011