[c#] .NET에서 “HttpRequest.RequestType”및 “WebRequest.Method”값에 대한 상수는 어디에 있습니까?

ASP.NET (또는 ) 에서 RequestType의 확인이 필요합니다 . 요청 유형에 문자열 값 ” “또는 ” “을 사용할 수 있지만 .NET의 일부 클래스 어딘가에 값을 포함하는 상수가 있다고 맹세 할 수 있습니다.HttpRequestWebRequest.MethodPOSTGET

호기심 사람이 어떤 클래스는 이러한 문자열 상수에 대해 알고 있는지 궁금 해서요 GET하고 POST있었다 온라인 검색 나는 시도했습니다.하지만 난 여기 물어 줄 알았는데, 그래서 나는 운이 없었습니다.



답변

System.Net.WebRequestMethods.Http
    .Connect = "CONNECT"
    .Get = "GET"
    .Head = "HEAD"
    .MkCol = "MKCOL"
    .Post = "POST"
    .Put = "PUT"

하지만 궁극적으로; const표현식은 호출자에게 태워 지기 때문에 오타의 위험없이 “GET”등을 사용하는 것과 동일합니다.


답변

System.Net.Http.HttpMethod열거 형 대신 사용할 수있는 것도 존재합니다 . 그것들을 비교할 수 있습니다 aMethod == HttpMethod.Get. 문자열 메소드 이름을 얻으려면 예를 들어 HttpMethod.Get.Method.


답변

ASP.NET MVC에서는 System.Web.Mvc.HttpVerbs에 있습니다. 그러나 이러한 열거 형 값 중 하나를 사용하는 모든 메서드에는 전체 HTTP 동사 집합이없고 현재 정의 된 값 집합 만 있기 때문에 텍스트 재정의도 있습니다 ( 여기여기여기 참조 ).

모든 동사를 포함하는 열거 형을 만들 수는 없습니다. 동사가 추가 될 가능성이 있고 열거 형에는 이를 비실용적으로 만드는 버전 관리 문제 가 있기 때문입니다.


답변

ASP.NET Core 에서는 네임 스페이스 아래의 HttpMethods.cs 클래스 에서 http 메서드 문자열 컬렉션을 찾을 수 Microsoft.AspNetCore.Http있습니다.

이 클래스는 또한 더 나은 의미 체계를 위해 IsGet()또는 같은 부울 도우미를 제공합니다 IsPost().

이러한 문자열로 노출되어 있습니다 public static readonly string및하지로 constants.


답변