Я довольно новичок в веб-API WCF, у меня есть базовая служба, пытающаяся использовать все возможности использования HttpResponseMessage в качестве возвращаемого типа.Я пытаюсь вернуть список и получаю следующую ошибку, которую я не могу обойти.
Это очень простой прямой XML-сервис.
Будем благодарны за любые идеи.Спасибо.
Тип 'System.Net.Http.HttpResponseMessage`1 [System.Collections.Generic.List`1 [Entities.UploadedDocumentSegmentType]]' не может быть сериализован.Попробуйте пометить его атрибутом DataContractAttribute и пометить все его элементы, которые вы хотите сериализовать, атрибутом DataMemberAttribute.Если тип является коллекцией, попробуйте пометить его с помощью CollectionDataContractAttribute.Сведения о других поддерживаемых типах см. В документации Microsoft .NET Framework.
Вот мой сервис:
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class DocumentService
{
[WebGet(UriTemplate = "/GetAllUploadableDocumentTypes")]
public HttpResponseMessage<List<UploadedDocumentSegmentType>> GetAllUploadableDocumentTypes()
{
UploadedDocumentManager udm = new UploadedDocumentManager();
return new HttpResponseMessage<List<UploadedDocumentSegmentType>>(udm.GetAllUploadableDocumentTypes());
}
}
Класс UploadedDocumentSegmentType определен так:
[Serializable]
public class UploadedDocumentSegmentType
{
public UploadedDocumentSegmentType();
public int DocTracSchemaID { get; set; }
public int ID { get; set; }
public string Type { get; set; }
}
И я тоже это попробовал:
[Serializable]
[DataContract]
public class UploadedDocumentSegmentType
{
public UploadedDocumentSegmentType();
[DataMember]
public int DocTracSchemaID { get; set; }
[DataMember]
public int ID { get; set; }
[DataMember]
public string Type { get; set; }
}
UDPATE: Я использовал шаблон Visual Studio приложения службы REST WCF для создания службы.Я попытался с нуля и изменить тип возвращаемого значения в образце метода WebGET на WebResponseMessage, и там возникнет та же ошибка.Так что это не мой код, это какая-то конфигурация, которую я не могу понять при жизни ...