Где константа для значений "HttpRequest.RequestType" и "WebRequest.Method" в .NET?
Мне нужно проверить RequestType
HttpRequest
в ASP.NET(или WebRequest.Method
). Я знаю, что я могу просто использовать строковые значения "POST
" или "GET
" для типа запроса, но я мог бы поклясться, что константа была где-то в каком-то классе в .NET, содержащем значения.
Из любопытства мне стало интересно, знал ли кто-нибудь, в каком классе были эти строковые константы для GET
и POST
. Я пробовал искать в Интернете, но мне не повезло, поэтому я подумал, что попрошу здесь.
Ответы
Ответ 1
System.Net.WebRequestMethods.Http
.Connect = "CONNECT"
.Get = "GET"
.Head = "HEAD"
.MkCol = "MKCOL"
.Post = "POST"
.Put = "PUT"
В конечном счете, однако; поскольку выражения const
записываются в вызывающий, это идентично использованию "GET" и т.д., без риска опечатки.
Ответ 2
Также существует System.Net.Http.HttpMethod
, который может служить вместо перечисления. Вы можете сравнить их aMethod == HttpMethod.Get
и т.д. Чтобы получить вызов имени метода string, например. HttpMethod.Get.Method
.
Ответ 3
В ASP.NET MVC они находятся в System.Web.Mvc.HttpVerbs. Но все методы, которые принимают одно из этих значений перечисления, также имеют переопределение текста, так как нет полного набора HTTP-глаголов, только набор текущих значений (см. здесь и здесь и здесь).
Вы не можете создать перечисление, которое охватывает все глаголы, поскольку существует вероятность добавления глаголов, а перечисления имеют проблемы с версированием которые делают это непрактичным.