У меня есть служба RESTful в .NET, и я хотел бы, чтобы все действия возвращали объект типа JsonResult, JsonResult - это объект, определенный мной так:
public class JsonResult<T>
{
public Notify Notify {get; set;}
public T Data {get; set;}
public static CreateResponse(T Data, Notify Notify = null, HttpStatusCode Code = HttpStatusCode.OK)
{
//Code param not manage, at the moment
return new JsonResult<T>
{
Data = Data,
Notify = Notify
};
}
}
public class Notify
{
public string Message {get; set;}
public Severity Severity {get; set;}
}
public enum Severity
{
Error,
Info,
Warning,
Fatal,
}
, поэтому на данный момент у меня есть действиявыглядит так:
public JsonResult<string> Get()
{
return JsonResult<string>.CreateResponse("Ciao Mondo!");
}
это работает, и мне нравится эта форма, потому что когда я читаю фирму, я уже знаю, что я хочу вернуть клиенту (JsonResult, T - это тип моих данных).... но проблема в том, когда я хочу управлять кодом состояния.
Прежде чем создавать этот новый проект, чтобы управлять кодом состояния, я использовал HttpResponseMessage и метод Request.CreateResponse, чтобы вернуть некоторые данные клиенту:
public HttpResponseMessage Get()
{
return Request.CreateResponse(HttpStatusCode.BadRequest, "Ciao Mondo!");
}
но мне это не нравится, потому что не сразу узнать возвращаемый тип.
так что ... мой вопрос ... как я могу управлятьКод состояния в мой метод JsonResult.CreateResponse (T, Notify [, HttpStatusCode])?
этот метод перемещен в CustomApiController (наследуется от ApiController), поэтому у меня есть HttpContext и Request доступны.
Большое спасибо всем