几天前,我发布了一个关于使用BinaryFormatter序列化ResponseStatus属性的问题。 Mythz指出它不是最快的方式,所以我决定转向另一个格式化程序。试过ProtoBuff和MsgPack,现在就在ProtoBuf上。
我真正的问题是:我试图了解Protobuf如何知道应该如何序列化ServiceStack Dto。我尝试将所有可能的属性添加到我现有的dto,ProtoContract和ProtoMember(0,1,2,3等),还有DataContract和DataMember。
最重要的是,我不使用ServiceStack自己的客户端,但尝试将请求序列化到现有流。
如果我不这样做:
ServiceStack.ProtoBuf.ProtoBufFormat.Model.Add (typeof(NameSpacePlaceholder.Service.Dto.GetNodes), false);
我收到有关无法传播的类型和合同的错误, 如果我确实添加了那段代码,那么一切都很好,但反序列化的对象是空的。
我用它来序列化:
ServiceStack.ProtoBuf.ProtoBufFormat.Model.Serialize (ms, myObject);
和反序列化:
ServiceStack.ProtoBuf.ProtoBufFormat.Model.Deserialize (ms, null, deserializationType);
我想我在这里遗漏了一些东西。它可能与名称空间有关吗?我查看了ServiceStack.ProtoBuff中的一些代码,它不是很难理解,但我无法理解。
现在我不清楚的事情:
非常感谢,
答案 0 :(得分:0)
我讨厌自己发布答案,这意味着我在第一时间没有足够的搜索
我了解到以下属性非常重要:
现在我学到了一些新东西:为什么DTO的继承不适合。
我现在已经开始了,并且会努力使它真实友好..