Я быстро работаю с веб-API WCF. Я хочу выставить конечную точку, которая может принимать заметки, через метод POST. Моя проблема в том, что я хочу поддерживать несколько представлений для заметок. Например, я мог бы принять примечание, используя пользовательскую сериализацию XML, которую мы используем в другом месте, или как элемент atom:entry
. У меня уже есть средства форматирования, которые могут десериализовать их в класс Note
(наш собственный пользовательский класс) или как SyndicationItem
.
Однако возникает вопрос, как мне определить метод? В настоящее время я получил это:
[WebInvoke(UriTemplate = GetNotesUriRoot,Method="POST")]
public HttpResponseMessage PostNote(ObjectContent item,HttpRequestMessage request)
Что не получается при запуске:
Сервисная операция 'PostNote' никогда не получит значение для входного параметра 'item' типа 'ObjectContent'. Убедитесь, что запрос HttpOperationHandler имеет выходной параметр с типом, назначаемым для «ObjectContent».
Сначала я пытался использовать два отдельных метода (с соответствующим образом заданными параметрами), но они не могут использовать одно и то же имя конечной точки. В настоящее время усилия (с использованием ObjectContent
) были основаны на других постах, которые я мог найти, что предполагало, что это может быть параметром. Не существует общего базового типа или интерфейса между Note
и SyndicationItem
Мы используем v0.6.0 веб-API WCF