Я пытаюсь использовать 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, я получаю ноль на клиенте.Через фидлер я вижу, что данные успешно передаются, поэтому я думаю, что это проблема десериализатора.
Что не так?Как я могу получить список на клиенте?
РЕДАКТИРОВАТЬ
Кажется, у меня есть проблемы со всеми списками:)
[DataContract]
[Serializable]
[ProtoContract]
public class SalesTemplateDTO
{
[ProtoMember(1)]
[DataMember]
public string Name { get; set; }
[ProtoMember(2)]
public List<FieldTemplateDTO> Fields;
}
Доклиент только с именем, список полей снова нулевой.Хотя все данные тоже передаются.