【发布时间】:2013-06-11 09:16:13
【问题描述】:
有这样一种类型:
[ProtoContract(UseProtoMembersOnly=true)]
public class ProtoObjectDTO
{
[ProtoMember(1, DynamicType=true)]
public object Value { get; set; }
[ProtoMember(2)]
public int Order { get; set; }
}
这些对象的数组具有多个实例 (参数在以下 sn-p 中)发送到服务:
await client.PostAsync<ProtoObjectDTO[]>(
route, parameters, new ProtoBufFormatter())
.ContinueWith((r) =>
{
r.Result.EnsureSuccessStatusCode();
retVal = true;
});
parameters 包含两个具有 Value 属性的实例
设置为不同类型的有效[ProtoContract]对象。
当数据到达服务器端时,它会像这样被反序列化:
var sentParams = ProtoBuf.Serializer.Deserialize<ProtoObjectDTO[]>(stream);
当检查 sentParams 并与 parameters 进行比较时, Value 在第二个实例中只是一个默认实例 在第一个实例中的对象类型。这很奇怪。 你能帮我解决这个问题吗?谢谢。
【问题讨论】:
标签: protobuf-net