Ich habe eine Klasse DocumentGenerator
, die eine MemoryStream
umschließt. Also habe ich IDisposable
auf die Klasse implementiert.Wie kann ich meinen Filestream bei der Implementierung eines Dateidownloads in ASP.NET entfernen?
Ich kann nicht sehen, wie/wo ich es möglicherweise entsorgen kann.
Dies ist meine aktuellen Code, der eine Datei herunterladen in MVC führt:
using (DocumentGenerator dg = DocumentGenerator.OpenTemplate(path))
{
/* some document manipulation with the
DocumentGenerator goes here ...*/
return File(dg.GetDocumentStream(), "text/plain", filename);
}
Dieser Fehler als der Strom/angeordnet geschlossen ist, bevor die Steuerung mit ihm fertig ist. Wie kann ich sicherstellen, dass meine Ressourcen in dieser Situation ordnungsgemäß entsorgt werden?
EDIT: Meine Implementierung von IDisposable
im Moment verfügt nur über die MemoryStream
. Ich weiß, dass es keine richtige Implementierung ist, ich habe es nur als Test verwendet. Kann ich hier etwas anderes machen, damit es funktioniert?
public void Dispose()
{
_ms.Dispose();
_ms = null;
}
Können Sie uns bitte die Implementierung von IDisposable zeigen? – DHN
Ist das _mss dasselbe, das Sie nach dem Aufruf von GetDocumentStream erhalten? –
@ Jordão: Ja, das ist richtig, daher das Problem. – fearofawhackplanet