我正在尝试使用protobuf-net来序列化数据集,但收到以下错误:
未处理的例外情况: System.InvalidOperationException:否 合适的默认数据集编码 找到。在 ProtoBuf.Serializer.ThrowNoEncoder(DATAFORMAT format,Type valueType)at ProtoBuf.Property.PropertyFactory.CreateProperty [T](类型 类型,DataFormat&格式, 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);
}
答案 0 :(得分:1)
DataSet
不是真正数据合同,“v1”中没有受支持的实现(代码可用作预先构建的dll)。但是,我在“v2”here中做了一些可能感兴趣的游戏,包括一系列用于比较/决策的指标。