So habe ich einen Provider (ein paar von ihnen tatsächlich) erstellt, und ich bin zu realisieren gibt es ein bisschen ein Muster in einigen meiner Logik. Es wird wiederholt, und ich glaube, ich viele Zeilen Code entfernen kann, wenn ich nur diese Erweiterung Methode erstellen können: DStatische Methode für null zurückkehrt
Also, im Grunde, was passiert etwas wie folgt aus:
// Get our item to be deleted
var model = await this._service.GetAsync(id);
// If we have nothing, throw an error
if (model == null)
throw new HttpException(404, string.Format(Resources.GenericNotFound, "List item"));
Nun, ich dies geschieht in vielen Orten, nicht nur für das Löschen, sondern für die Aktualisierung. Ich möchte eine Erweiterungsmethode schaffen, das mir so etwas zu tun erlaubt:
// Get our item to be deleted
var model = await this._service.GetAsync(id).ThowIfNull("List item");
ich auch diese arbeiten müssen mit jedem Rückgabetyp. Also in diesem Fall könnte es ein Konto sein, aber es wird ein Anbieter, der diesen Code auch einen Auftrags Rückkehr hat, aber ich brauche die Erweiterungsmethode für beide zu arbeiten.
Ich denke, die Herausforderung hier der Asynchron-Bit, aber ich könnte falsch sein!
Wer weiß, ob es möglich ist?
Nun ja, eine Möglichkeit ist, '(erwarten this._wervice.GetAsync (id)).ThrowIfNull ("List item"); 'wenn Sie möchten, dass die Erweiterungsmethode auf jedem' Modell' (oder vielleicht sogar auf 'Objekt') statt der' Task ' –
juharr
ist Könnten Sie dies als Beispiel aufschreiben? – r3plica