В настоящее время я использую шаблон построителя для создания моделей MVC.
var viewModel = builder
.WithCarousel(),
.WithFeaturedItems(3),
.Build()
Проблема, с которой я сталкиваюсь, заключается в том, когда мне нужно сделать вызов службы для метода async. Это означает, что мой метод-строитель должен вернуть Task<HomeViewModelBuilder>
вместо HomeViewModelBuilder
. Это мешает мне связывать методы сборки, как я должен await
их.
Пример метода
public async Task<HomeViewModelBuilder> WithCarousel()
{
var carouselItems = await _service.GetAsync();
_viewModel.Carousel = carouselItems;
return this;
}
Теперь я должен использовать await
для вызова методов построения.
await builder.WithCarousel();
await builder.WithFeaturedItems(3);
Кто-нибудь использовал методы async с шаблоном построителя? Если да, возможно ли иметь возможность связать методы или отложить метод await
к методу сборки.