当前位置:  开发笔记 > 编程语言 > 正文

.NET中的"HttpRequest.RequestType"和"WebRequest.Method"值的常量在哪里?

如何解决《.NET中的"HttpRequest.RequestType"和"WebRequest.Method"值的常量在哪里?》经验,为你挑选了3个好方法。

我需要检查RequestTypeHttpRequest在ASP.NET(或WebRequest.Method).我知道我可以使用字符串值" POST"或" GET"作为请求类型,但我可以发誓在.NET中包含值的某个类中有一个常量.

出于好奇,我想知道是否有人知道这些字符串常量是哪一个阶级GETPOST人.我已经试过在网上搜索,但我没有运气,所以我认为我会问这里.



1> Marc Gravell..:
System.Net.WebRequestMethods.Http
    .Connect = "CONNECT"
    .Get = "GET"
    .Head = "HEAD"
    .MkCol = "MKCOL"
    .Post = "POST"
    .Put = "PUT"

但最终; 因为const表达式被烧入调用者,这与使用"GET"等相同,只是没有拼写错误的风险.


有意思,为什么没有DELETE方法和"*"?
它缺少OPTIONS和TRACE.
`PATCH`动词也不见了.

2> xmedeko..:

也存在System.Net.Http.HttpMethod可以代替枚举.您可以比较它们aMethod == HttpMethod.Get等.要获取字符串方法名称,例如HttpMethod.Get.Method.


这也有利于在Asp.Net Core中工作
我只是想知道为什么他们没有将这些字段声明为常量而不是静态只读字段.常量的优点是你可以将它们作为参数默认值传递(即`void Request(HttpMethod method = HttpMethod.Get)`).

3> 小智..:

在ASP.NET MVC中,它们位于System.Web.Mvc.HttpVerbs中.但是,所有采用其中一个枚举值的方法也都有文本覆盖,因为没有完整的HTTP谓词集,只有一组当前定义的值(请参见此处以及此处和此处).

您无法创建涵盖所有动词的枚举,因为可能会添加动词,并且枚举具有使这不切实际的版本问题.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有