¿Hay una manera de hacer esto:¿Puedes evitar que StreamReader elimine la transmisión subyacente?
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...
}
sin tener que abrir el archivo dos veces?
Parece que no puedo hacer que StreamReader no elimine mi transmisión. No quiero simplemente dejarlo fuera del alcance, tampoco. Entonces, el recolector de basura eventualmente llamará al Dispose, matando a la corriente.
Pero no es allí la posibilidad de que en el futuro 'StreamReader' sería modificado para contener algún recurso no administrado, empezar a aplicar un finalizador, y luego cuando se va fuera de alcance al azar cerrar su torrente cuando el recolector de basura finaliza?¿O debemos * suponer * que, dado que esto no sucede ahora, nunca lo hará? – binki