所以我創建了一個提供者(其中幾個實際),我意識到在我的一些邏輯中存在一些模式。它被重複,我想我可以刪除大量的代碼行,如果我可以創建這個擴展方法:d處理空值返回的靜態方法
所以,基本上所發生的事情是這樣的:
// 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"));
現在,我在很多地方做這個,不只是爲了刪除,而是爲了更新。 我想創建一個擴展方法,它允許我做這樣的事情:
// Get our item to be deleted
var model = await this._service.GetAsync(id).ThowIfNull("List item");
我還需要這與任何返回類型的工作。所以在這種情況下,它可能是帳戶,但會有一個提供商也有此代碼返回訂單但我需要擴展方法爲兩個工作。
我認爲這裏的挑戰是異步,但我可能是錯的!
任何人都知道是否有可能?
那麼一種可能是'(等待this._wervice.GetAsync(ID))。ThrowIfNull(「List item」);'如果你想在任何'model'上使用擴展方法(或者甚至可以在'object'上)而不是'Task' –
juharr
你能寫這個例子嗎? – r3plica