WCF - проблема маршрутизации - PullRequest
0 голосов
/ 21 июля 2010

Я работаю над службой REST WCF, и у меня есть два метода с одним и тем же URITemplate.Один из них помечен WebGet, а другой - WebInvoke с использованием PUT в качестве метода.

[WebGet(URITemplate="{name}")]
public Something GetSomethingNamed(string name)


[WebInvoke(Method="PUT", URITemplate="{name}")]
public Something AddSomethingNamed(Something somethingToAdd)

При попытке протестировать что-либо в службе лучший способ обработки исключения - попытка перейти кметод GET в IE Я получил сообщение об ошибке, что AddsomethingNamed требует параметр с именем NAME.

Этот ответ меня слегка озадачил, так как я даже не знаю, как он получал метод PUT, насколько я знаювеб-браузеры даже напрямую не поддерживают PUT.

1 Ответ

1 голос
/ 21 июля 2010
[WebInvoke(Method="PUT", URITemplate="{name}")] 
public Something AddSomethingNamed(Something somethingToAdd) 

В приведенном выше коде в шаблоне URI вы упомянули {имя}, что означает, что ваш метод принимает еще один параметр "имя".

Таким образом, подпись вашего метода должна быть любой из следующих

[WebInvoke(Method="PUT", URITemplate="AddSomethingNamed")] 
public Something AddSomethingNamed(Something somethingToAdd) 

ИЛИ

[WebInvoke(Method="PUT", URITemplate="{name}")] 
public Something AddSomethingNamed(string name, Something somethingToAdd)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...