Ich muss das RequestType
von einem HttpRequest
in ASP.NET (oder WebRequest.Method
) überprüfen . Ich weiß, dass ich nur die Zeichenfolgenwerte " POST
" oder " GET
" für den Anforderungstyp verwenden kann, aber ich hätte schwören können, dass irgendwo in einer Klasse in .NET eine Konstante vorhanden ist, die die Werte enthält.
Aus Neugier fragte ich mich, ob jemand wusste, für welche Klasse sich diese String-Konstanten befanden GET
und POST
in welcher Klasse sie sich befanden. Ich habe versucht, online zu suchen, aber ich hatte kein Glück, also dachte ich, ich würde hier fragen.
PATCH
Verb fehlt auch.Es gibt auch
System.Net.Http.HttpMethod
welche, die anstelle von Enum dienen können. Sie können sie vergleichenaMethod == HttpMethod.Get
usw. Um den Namen der Zeichenfolgenmethode zu erhalten, rufen Sie zHttpMethod.Get.Method
.quelle
void Request(HttpMethod method = HttpMethod.Get)
) übergeben können.HttpMethod.Get.Method
ist KEINE Kompilierungszeitkonstante :( woSystem.Net.WebRequestMethods.Http
sind KonstantenIn ASP.NET MVC befinden sie sich in System.Web.Mvc.HttpVerbs . Alle Methoden, die einen dieser Enum-Werte annehmen, haben jedoch auch eine Textüberschreibung, da es keinen vollständigen Satz von HTTP-Verben gibt, sondern nur einen Satz aktuell definierter Werte (siehe hier und hier und hier ).
Sie können keine Aufzählung erstellen, die alle Verben abdeckt, da die Möglichkeit besteht, dass Verben hinzugefügt werden können und Aufzählungen Versionsprobleme aufweisen , die dies unpraktisch machen.
quelle
In ASP.NET Core finden Sie eine Sammlung von http-Methodenzeichenfolgen in der Klasse HttpMethods.cs unter dem
Microsoft.AspNetCore.Http
Namespace.Diese Klasse bietet auch boolesche Helfer wie
IsGet()
oderIsPost()
für eine bessere Semantik.Bitte beachten Sie, dass diese Zeichenfolgen als
public static readonly string
und nicht als angezeigt werdenconstants
.quelle