È possibile iterare la raccolta e elencare solo le informazioni sull'oggetto filtrate durante il debug in Visual Studio? Vorrei usare la finestra Immediata per questo, ma sebbene consenta di eseguire metodi sugli oggetti, sembra non consentire l'esecuzione di istruzioni di loop personalizzati.Iterare oggetto enumerabile durante il debug in Visual Studio
esempio più semplice in ASP.NET:
this.Page.Validate();
if (!this.Page.IsValid())
{
// breakpoint here
}
Come possiamo iterare Page.Validators
raccolta e trovare quelli che sono uscita + invalida le loro informazioni a quel punto di rottura? (questa non è la domanda principale, è solo un esempio)
Se non è possibile farlo in modo diretto, hai qualche soluzione alternativa per questo? Soluzioni alternative che non comportano la modifica del codice, solo la scrittura di codice nella finestra Immediata o alcune espressioni di Watch.
Mentre googling ho trovato solo una soluzione citata here (anche se non riusciva a trovare l'originale):
"Aggiungi un metodo di debug per il codice che fa qualcosa di simile Scorrere tutti gli oggetti in una collezione. Poi è possibile chiamare quel metodo dalla finestra immediata mentre in modalità debug e sarà enumerare le varie cose per voi. Pensate a come un della riga di comando-debugger-helper. puoi scrivere come molti di quelli che vuoi. "
Ma è ancora una soluzione. Immagino che dovrebbe essere fattibile senza troppi hacking e, soprattutto, senza modificare il codice. Ovviamente dovrebbe essere possibile eseguire una sorta di trasformazione della raccolta in un'unica istruzione.
E passiamo alle raccolte non generiche. Anche la finestra Immediata sembra non accettare le espressioni lambda (viene visualizzato un errore quando viene provato: "L'espressione non può contenere espressioni lambda")
Molto utile, grazie Jeff. – Kon
Prego. Sono felice che tu l'abbia trovato utile. –