Ответ 1
Вы можете использовать любой int для HttpStatusCode.
response.StatusCode = (HttpStatusCode)422;
Вы также можете:
HttpResponseMessage response = Request.CreateResponse((HttpStatusCode)422, "Unprocessable Entity");
В Asp.net Web Api, как мне установить код состояния моего ответа, используя int или string, а не перечисление StatusCode?
В моем случае я хотел бы возвратить ошибки проверки с кодом состояния 422, "Непроцессная сущность", но для этого нет перечислителя.
HttpResponseMessage response = Request.CreateResponse();
response.StatusCode = HttpStatusCode.UnprocessableEntity; //error, not in enum
Вы можете использовать любой int для HttpStatusCode.
response.StatusCode = (HttpStatusCode)422;
Вы также можете:
HttpResponseMessage response = Request.CreateResponse((HttpStatusCode)422, "Unprocessable Entity");
Я создал класс для этого:
public class HttpStatusCodeAdditions
{
public const int UnprocessableEntityCode = 422;
public static HttpStatusCodeAdditions UnprocessableEntity = new HttpStatusCodeAdditions(UnprocessableEntityCode);
private HttpStatusCodeAdditions(int code)
{
Code = code;
}
public int Code { get; private set; }
public static implicit operator HttpStatusCode(HttpStatusCodeAdditions addition)
{
return (HttpStatusCode)addition.Code;
}
}
который можно использовать следующим образом:
response.StatusCode = HttpStatusCodeAdditions.UnprocessableEntity;