有这样一种类型:
[ProtoContract(UseProtoMembersOnly=true)]
public class ProtoObjectDTO
{
[ProtoMember(1, DynamicType=true)]
public object Value { get; set; }
[ProtoMember(2)]
public int Order { get; set; }
}
这些对象的数组具有多个实例(以下代码段中的参数)发送到服务:
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并与参数进行比较时, 第二个实例中的值只是第一个实例中对象类型的默认实例。这很奇怪。你能帮我解决这个问题吗?谢谢你。