2009-07-02 3 views

ответ

8

Ваше непосредственное наблюдение, что WebGet и WebInvoke очень похожи, не слишком далеки от истины. WebGet, как вы уже сказали, относится к глаголу HTTP GET, в то время как WebInvoke может использоваться для применения ко всем другим глаголам (PUT, POST, DELETE и т. Д.).

Многие параметры в WebInvoke отражают те, что в WebGet. BodyStyle, RequestFormat, ResponseFormat и UriTemplate присутствуют как для WebGet, так и для WebInvoke. Единственным отличием является наличие параметра «Метод» для WebInvoke. Параметр Method указывает HTTP-глагол, соответствующий операции, причем POST является значением по умолчанию.

У меня не было возможности использовать рефлектор, чтобы смотреть под капотом для WebGet и WebInvoke, но я подозреваю, что они очень похожи, хотя они, похоже, только разделяют System.Attribute как обычную линию.

0

Ну, есть разница в обработке запроса. Как правило, используйте WebGet для GET. См. Мои answer для деталей.