2012-05-14 18 views
10

¿Cómo administro el cierre StreamReader y StreamWriter que están usando la misma transmisión subyacente?StreamReader y StreamWriter en el mismo Stream?

var stream = /*...*/; 
var reader = new StreamReader(stream); 
var writer = new StreamWRiter(stream); 

Sé que podría simplemente ignorar el cierre del lector/escritor y simplemente cerrar el flujo subyacente. Sin embargo, parece un truco, ya que se basa en la suposición de que el lector/escritor no tiene nada que desechar (lo que podría no ser el caso en el futuro).

Sé que esto se ha resuelto en .NET 4.5 con un argumento constructor adicional, pero hasta que se libere .NET 4.5, ¿cómo lo resuelvo de manera adecuada?

Respuesta

5

Asegúrese de que Flush() el escritor primero.

Y luego solo elimine o cierre los 2 decoradores y la secuencia (los usos anidados son correctos).

Cuestiones relacionadas