Tengo una clase DocumentGenerator
que envuelve MemoryStream
. Así que he implementado IDisposable
en la clase.¿Cómo elimino mi filestream al implementar una descarga de archivos en ASP.NET?
No veo cómo/dónde puedo desecharlo.
Este es mi código actual, que realiza una descarga de archivos en MVC:
using (DocumentGenerator dg = DocumentGenerator.OpenTemplate(path))
{
/* some document manipulation with the
DocumentGenerator goes here ...*/
return File(dg.GetDocumentStream(), "text/plain", filename);
}
Este errores como la corriente está cerrado/dispuestos antes que el controlador ha terminado con él. ¿Cómo puedo asegurarme de que mis recursos se eliminen adecuadamente en esta situación?
EDIT: Mi implementación de IDisposable
por el momento solo dispone de MemoryStream
. Sé que no es una implementación adecuada, solo la utilicé como prueba. ¿Hay algo diferente que pueda hacer aquí para que funcione?
public void Dispose()
{
_ms.Dispose();
_ms = null;
}
¿Puede mostrarnos la implementación de IDisposable, por favor? – DHN
¿Es eso '_ms' lo mismo que recibes después de llamar a' GetDocumentStream'? –
@ Jordão: sí, eso es correcto, de ahí el problema. – fearofawhackplanet