WCF WebGetAttribute vs WebInvokeAttribute

является ли WebGetAttribute просто синтаксическим сахаром для WebInvokeAttribute с Method = "GET"? Или основная разница?

2 ответов


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

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

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


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