我目前正在从事一个项目,在这个项目中,以前的开发人员使用*作为WebInvoke的方法。
[OperationContract]
[WebInvoke(Method = "*", UriTemplate = "/Path", ResponseFormat = WebMessageFormat.Json)]
void SetPath(PathInfo pathInfo);我想知道*是为了什么-如果有什么用。我期待着得到,放置,张贴等.不是明星。最初,我认为默认(POST),但没有理由使用*如果它是相同的默认。
MSDN似乎并没有解决这个问题(MSDN WebInvokeAttribute.Method ),但是除了默认的POST之外,它们并不真正地处理任何方法。
这个post (实施方法)似乎表明*应该与OPTIONS方法一起作为UriTemplate使用。所以,我只是想弄清楚他是否不正确,或者他的代码是否有效,在这种情况下,我想知道它意味着什么。
发布于 2015-03-17 23:32:36
我对System.ServiceModel.Description.WebHttpBehavior进行了解压缩,它使用了WebInvoke,您可以看到这只是一个通配符操作,匹配所有内容。
public class WebHttpBehavior : IEndpointBehavior, IWmiInstanceProvider
{
internal const string GET = "GET";
internal const string POST = "POST";
internal const string WildcardAction = "*";
internal const string WildcardMethod = "*";这是一个捕获所有行为
发布于 2017-08-06 06:10:00
使用WebInvoke(method=“.是从浏览器支持CORS请求(预运行,方法=“选项”)的方式。在您的服务方法上使用“”会将CORS预飞行请求路由到您的服务方法中(除了get/post/put等)。让你处理飞行前的事。否则,您的方法将不会在飞行前请求中被调用,预飞将失败(在浏览器中)。
https://stackoverflow.com/questions/29109646
复制相似问题