This问题已经问到我在问什么,但我想对答案做一些澄清。
答案指出WebGet
和WebInvoke
相似,主要区别在于Method
参数。
但是如果Method
参数设置为"GET"
,它实际上是功能相同的,还是存在其他差异?
答案 0 :(得分:2)
它们只是标记属性,最终在功能上等同于100%。解释这些属性的唯一方法是WebHttpBehavior::GetWebMethod
方法,其功能很简单:
internal static string GetWebMethod(OperationDescription od)
{
WebGetAttribute webGetAttribute = od.Behaviors.Find<WebGetAttribute>();
WebInvokeAttribute webInvokeAttribute = od.Behaviors.Find<WebInvokeAttribute>();
WebHttpBehavior.EnsureOk(webGetAttribute, webInvokeAttribute, od);
if (webGetAttribute != null)
{
return "GET";
}
if (webInvokeAttribute == null)
{
return "POST";
}
return webInvokeAttribute.Method ?? "POST";
}
答案 1 :(得分:0)