Torna al Thread

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Newtonsoft.Json; using RestSharp; namespace WpfApplication5 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public Task Initialization { get; private set; } public MainWindow() { InitializeComponent(); // per mettere codice asincrono nel costruttore ci sono regole da seguire // esistono varie tecniche spiegate qui: http://blog.stephencleary.com/2013/01/async-oop-2-constructors.html Initialization = LoadDataAsync(); } private async void Button_Click(object sender, RoutedEventArgs e) { await LoadDataAsync(); } public async Task LoadDataAsync() { var connessione = new Connessione(); var dati = await connessione.GetAsync(); tbkNome.Text = dati.Nome; tbkStato.Text = dati.Stato; } } public class Connessione { public async Task<Dati> GetAsync() { RestRequest request = new RestRequest("url servizio"); request.Method = Method.GET; RestClient client = new RestClient(); var response = await client.ExecuteTaskAsync(request); Dati dati = JsonConvert.DeserializeObject<Dati>(response.Content); return dati; } } public class Dati { [JsonProperty("nome")] public string Nome { get; set; } [JsonProperty("stato")] public string Stato { get; set; } } }
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5