Где константа для значений "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-глаголов, только набор текущих значений (см. здесь и здесь и здесь).

Вы не можете создать перечисление, которое охватывает все глаголы, поскольку существует вероятность добавления глаголов, а перечисления имеют проблемы с версированием которые делают это непрактичным.