Ho imparato a caricare pigro le proprietà nel mio repository. Ora mi piacerebbe farlo, ma ho anche bisogno di caricare qualcosa da una pagina web (usando Httpclient) che significa che la mia proprietà sarà asincrona.Proprietà di carico pigro con 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;
}
}
Tuttavia, visual studio mi sta dicendo che
"Async modificatore non è valido per questo articolo"
evidenziando la parola "News" nella prima linea.
È possibile farlo? O devo scrivere un metodo separato?
lo prendo che hai l'istruzione using per System.Threading.Tasks? Inoltre, quale framework .NET è questo targeting? È Silverlight? - Non importa, ho appena visto che questa è una proprietà. Dovrai convertirlo in metodi. –
Mi sembra che la proprietà 'News' abbia intuitivamente il tipo' Lista ', la decorazione' Task <> 'non sembra naturale qui. Perché ritieni di dover esporre la natura 'Task <>'? –
@AndrewCoonce In realtà, se vuole scrivere un metodo async * *, dovrà sicuramente scriverlo come restituendo un compito. –