2013-06-20 8 views
8

Quindi mi stavo chiedendo, quando si esegue una normale applicazione winforms, dove scrive il metodo ?Cosa scrive in Console.WriteLine() durante il rilascio?

So che durante il debug sputerà volentieri tutto il testo nell'output di debug, ma dove va tutto quando non eseguo più il debug e utilizzo il programma come farebbe un utente finale? Entra in una specie di cache? Le profondità della RAM? In vacanza in Lettonia?

E se scrive su qualcosa che è accessibile durante il runtime, possiamo in qualche modo mostrarlo all'utente o scrivere tutto in un file di testo o qualcosa del genere?

+0

Penso che la Lettonia sia la risposta giusta;) Una domanda di follow-up interessante potrebbe essere: è possibile allegare all'output standard di un processo in esecuzione (per scopi di registrazione)? –

risposta

4

Stai parlando di Console.WriteLine o Debug.WriteLine?

Console.WriteLine funziona allo stesso modo nella configurazione di debug e release. Se configuri il tuo progetto come Console Application e lo avvii in modalità di rilascio, riceverai prima una console in background dove vedrai tutti i tuoi output. This is a Winform Project configured to run as console project and writes "Hello World" in form load event

Debug.WriteLine ha un'istruzione condizionale, se DEBUG non è definito. Non scrive nulla.

1

Console.WriteLine() scriverà sullo standard output in modalità debug o release. Quindi hai un modo per prenderlo in modalità di rilascio.

C'è un'alternativa con Debug.WriteLine che, se ricordo, non è compilato in versione.

1

Penso che la tua domanda riguardi davvero il voler acquisire Console.WriteLine(). Innanzitutto, Console.WriteLine() scrive nel flusso di output standard che può essere letto allegando una finestra della console o altri mezzi per intercettare il flusso.

Se si desidera catturare debug o informazioni di registrazione che si desidera utilizzare

System.Diagnostics.Trace.WriteLine

Poi, per inviare l'output a un file si potrebbe configurare un TraceListener che potrebbe essere un file o qualcosa del genere.

+1

Questo non è necessariamente vero. Si può leggere dallo standard output senza bisogno di usare una finestra della console. Ad esempio, potrebbe essere letto da un programma di avvio che utilizza 'Process.Start' per eseguirlo e quindi accedere allo standard input/output. – Servy

+0

@Servy, OK, ho aggiornato la mia risposta che spero sia più accurata. –