Я научился ленивым свойствам загрузки в моем репозитории. Теперь я хотел бы сделать это, но мне также нужно загрузить что-то с веб-страницы (используя Httpclient), что означает, что моя собственность будет асинхронной.Lazy load properties with Async
public async Task<List<NewsModel>> News
{
get
{
if (_news == null)
{
CacheProvider cache = new CacheProvider();
object cachedNews = cache.Get("news");
if (cachedNews == null)
{
var client = new HttpClient();
// await HttpResponse
}
}
return _news;
}
set
{
_news = value;
}
}
Однако визуальная студия говорит мне, что
«Модификатор асинхронный не действует для этого элемента»
выделив слово «Новости» в первом линия.
Возможно ли это? Или мне нужно написать отдельный метод?
я считать, что у вас есть, используя заявление для System.Threading.Tasks? Кроме того, какая платформа .NET является таргетированием? Это Silverlight? - Ничего, просто увидел, что это свойство. Вы захотите преобразовать это в методы. –
Мне кажется, что свойство 'News' будет интуитивно иметь тип' List ', украшение' Task <> 'здесь не кажется естественным. Почему вы чувствуете, что вам нужно разоблачить «Задачу <>»? –
@AndrewCoonce На самом деле, если он хочет написать метод асинхронного *, он определенно должен будет записать его как возвращающее задачу. –