C'è un modo per farlo:È possibile impedire a StreamReader di smaltire il flusso sottostante?
this.logFile = File.Open("what_r_u_doing.log", FileMode.OpenOrCreate, FileAccess.ReadWrite);
using(var sr = new StreamReader(this.logFile))
{
// Read the data in
}
// ... later on in the class ...
this.logFile = File.Open("what_r_u_doing.log", FileMode.OpenOrCreate, FileAccess.ReadWrite);
using(var sw = new StreamWriter(this.logFile))
{
// Write additional data out...
}
senza dover aprire il file due volte?
Non riesco a far sì che lo StreamReader non disponga il mio stream. Non voglio lasciarlo andare fuori ambito. Quindi il garbage collector chiamerà infine il Dispose, uccidendo il flusso.
Ma non c'è la possibilità che in futuro 'StreamReader' sarebbe essere modificato per tenere alcune risorse non gestito, avviare l'attuazione di un finalizzatore, e poi quando si va fuori portata in modo casuale chiudere il flusso di quando il garbage collector lo mette a punto?O dovremmo * supporre * assumere che, poiché ciò non accade ora, non lo sarà mai? – binki