2011-01-20 4 views
2

Je suis en train d'utiliser protobuf net pour sérialiser un ensemble de données, mais obtenir l'erreur ci-dessous:Erreur lors de jeu de données sérialisation avec protobuf-net

Unhandled Exception: System.InvalidOperationException: No suitable Default DataSet encoding found. at ProtoBuf.Serializer.ThrowNoEncoder(DataFormat format, Type valueType) at ProtoBuf.Property.PropertyFactory.CreateProperty[T](Type type, DataFormat& format, MemberSerializationOptions options)
at ProtoBuf.Property.PropertyFactory.Create[T](MemberInfo member) at ProtoBuf.Serializer`1.Build()

Voici le code utilisé

[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); 
    } 

Répondre

1

DataSet n'est pas vraiment un contrat de données, et il n'y a pas d'implémentation prise en charge dans "v1" (le code disponible en tant que DLL pré-construit). J'ai, cependant, fait un peu de jeu dans "v2" here qui peut être d'intérêt, y compris une gamme de mesures pour la comparaison/prise de décision.

Questions connexes