WebApi2 IHttpActionResult stark typisierte Rückgabewerte

Es ist möglich und nicht ideal, dies zu tun: (ein stark vereinfachtes Beispiel!)

[Serializable]
public class MyRecord
{
    public string key {get; set;}
    public string data {get; set;}
}

public async Task<IHttpActionResult> Get(string SomeKey)
{
    if(ExistsInDB(SomeKey))
    {
        return Ok(SomeRecordFromDB(SomeKey));  //SomeRecord() returns a POCO MyRecord.
    }
    else
    {
        //I know I can return NotFound() but not the focus of my Q
        return Ok(false);  //returns "False"
    }
}

Effektiv demonstrieren, dass beim Überprüfen des Rückgabetyps zur Kompilierungszeit kein Fehler aufgetreten ist. In diesem Beispiel wird entweder eine JSon-serialisierte POCO-Klasse zurückgegeben (JSon ist in meinem Accept-Header festgelegt), oder es wird der Text "False" zurückgegeben, der den Client mit der Typüberprüfung belastet.

Ich würde dies nicht beabsichtigt tun, aber mein Team überarbeitet einMengch mag es, wenn der Compiler hilft, solche Fehler einzufangen, anstatt auf das Testen von Modulen oder Einheiten zu warte

Ist der richtige Weg, um wieder stark typisierte Methodensignaturen zu verwenden (unter Vermeidung von IHttpActionResult und Ok (), NotFound () usw.) oder gibt es so etwas wie einIHttpActionResult<T> das kann verwendet werden, um sicherzustellen, dass der richtige Typ zurückgegeben wird?

M.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage