Warum sollte ich IHttpActionResult anstelle von HttpResponseMessage verwenden?

Ich habe mit WebApi entwickelt und bin zu WebApi2 übergegangen, wo Microsoft ein neues eingeführt hatIHttpActionResult Schnittstelle, die empfohlen zu werden scheint, um über das Zurückgeben von aHttpResponseMessage. Ich bin verwirrt über die Vorteile dieser neuen Schnittstelle. Es scheint vor allem nur eine zu bietenLEICHT einfacher Weg, um eineHttpResponseMessage.

Ich würde argumentieren, dass dies "Abstraktion der Abstraktion zuliebe" ist. Vermisse ich etwas? Was sind die realen Vorteile, die ich durch die Verwendung dieses neuen Interfaces erhalte, abgesehen davon, dass ich möglicherweise eine Codezeile speichere?

Alter Weg (WebApi):

public HttpResponseMessage Delete(int id)
{
    var status = _Repository.DeleteCustomer(id);
    if (status)
    {
        return new HttpResponseMessage(HttpStatusCode.OK);
    }
    else
    {
        throw new HttpResponseException(HttpStatusCode.NotFound);
    }
}

Neuer Weg (WebApi2):

public IHttpActionResult Delete(int id)
{
    var status = _Repository.DeleteCustomer(id);
    if (status)
    {
        //return new HttpResponseMessage(HttpStatusCode.OK);
        return Ok();
    }
    else
    {
        //throw new HttpResponseException(HttpStatusCode.NotFound);
        return NotFound();
    }
}

Antworten auf die Frage(8)

Ihre Antwort auf die Frage