Nehmen wir an, ich habe die folgende Variable:
System.Net.HttpStatusCode status = System.Net.HttpStatusCode.OK;
Wie kann ich überprüfen, ob dies ein Erfolgsstatuscode oder ein Fehlercode ist?
Zum Beispiel kann ich Folgendes tun:
int code = (int)status;
if(code >= 200 && code < 300) {
//Success
}
Ich kann auch eine Art weiße Liste haben:
HttpStatusCode[] successStatus = new HttpStatusCode[] {
HttpStatusCode.OK,
HttpStatusCode.Created,
HttpStatusCode.Accepted,
HttpStatusCode.NonAuthoritativeInformation,
HttpStatusCode.NoContent,
HttpStatusCode.ResetContent,
HttpStatusCode.PartialContent
};
if(successStatus.Contains(status)) //LINQ
{
//Success
}
Keine dieser Alternativen überzeugt mich und ich hatte auf eine .NET-Klasse oder -Methode gehofft, die diese Arbeit für mich erledigen kann, wie zum Beispiel:
bool isSuccess = HttpUtilities.IsSuccess(status);
HttpClient
Klasse?
HttpResponseMessage
zum Beispiel
HttpResponseMessage.IsSuccessStatusCode
(siehe meine Antwort), die genau Ihrem ersten Ansatz entspricht, jederzeit wiederverwenden und sie zu einer Erweiterungsmethode für den HttpStatusCode
Typ machen.
int code = (int)Response.StatusCode
von dort aus müssen Sie Ihre eigene erstellenEnum
Check hier für das Arbeitsbeispiel stackoverflow.com/questions/1330856/...