Debugger non riconosce la variabile per il valore di restituzione del metodo atteso
Domanda
Ho questo codice molto semplice in Biblioteca di classe portatile mirata a .NET 4.5 e app di Windows Store:
HttpResponseMessage response = await _httpClient.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
.
Quando metto il punto di interruzione sulla seconda riga ed esegui la mia applicazione il punto di interruzione è colpito correttamente, ma non riesco a indagare sulla risposta nel debugger perché segnala:
.Il nome 'Risposta' non esiste nel contesto corrente
Non sono sicuro di quanto sia correlato, ma ho dovuto anche disabilitare solo il mio codice Impostazione del debugger nelle impostazioni di DebuGger per essere in grado di eseguire il debug della mia libreria di classe portatile posti nella stessa soluzione delEsecuzione dell'applicazione.
È una limitazione dei metodi attendibili Async, le librerie di classe portatili, le applicazioni mirate (app per Windows Store) o la combinazione di tali strumenti?O è un bug di debugger?Qualsiasi soluzione alternativa sarebbe più che utile.
Soluzione
Non sono sicuro che questo accada ancora con gli aggiornamenti nuovi di Visual Studio (non ho più la base di codice) ma il problema nel mio caso stava probabilmente la combinazione di Async-attende il debug con i contratti di codice.Non ho visto il problema quando non usi contratti di codice.