【发布时间】:2010-10-28 06:40:29
【问题描述】:
我尝试将 WCF 与 protobuf-net r.282 一起使用
好的。我用 ProtoBehavior 属性标记我的合同
[OperationContract,ProtoBehavior]
[FaultContract(typeof(ServiceFaultException))]
Dictionary<ActivityCategoryDTO, SalesTemplateDTO> GetSalesTemplates();
[OperationContract, ProtoBehavior]
[FaultContract(typeof(ServiceFaultException))]
List<ActivityCategoryDTO> GetActivities();
接下来,-DTO:
[DataContract]
[Serializable]
[ProtoContract]
public class ActivityCategoryDTO
{
[DataMember]
[ProtoMember(1)]
public int Id { get; set; }
[DataMember]
[ProtoMember(2)]
public string Guid { get; set; }
[DataMember]
[ProtoMember(3)]
public string Name { get; set; }
}
我尝试从客户端使用此服务。当我调用 GetSalesTemplates 时 - 一切正常。我有成功的反序列化字典,但是当我调用 GetActivities 时,我在客户端得到了 null。 通过fiddler我看到,数据传输成功,所以我认为是反序列化问题。
怎么了?如何在客户端获取列表?
编辑
看来我的所有列表都有问题:)
[DataContract]
[Serializable]
[ProtoContract]
public class SalesTemplateDTO
{
[ProtoMember(1)]
[DataMember]
public string Name { get; set; }
[ProtoMember(2)]
public List<FieldTemplateDTO> Fields;
}
它来到客户端只是名称,字段列表再次为空。虽然所有的数据也是传输的。
【问题讨论】:
-
嗨安德鲁 - 抱歉耽搁了;最近很多“忙”。下面分析解释一下。
标签: c# wcf protobuf-net