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
. Смотрите мой ответ для сведения.