Tôi có một lớp DocumentGenerator
kết thúc tốt đẹp một MemoryStream
. Vì vậy, tôi đã thực hiện IDisposable
trên lớp học.Làm cách nào để xử lý luồng phim của tôi khi triển khai tải xuống tệp trong ASP.NET?
Tôi không thể thấy cách/nơi tôi có thể bỏ qua.
Đây là mã hiện tại của tôi, mà thực hiện một download tập tin trong MVC:
using (DocumentGenerator dg = DocumentGenerator.OpenTemplate(path))
{
/* some document manipulation with the
DocumentGenerator goes here ...*/
return File(dg.GetDocumentStream(), "text/plain", filename);
}
này lỗi như con suối bị đóng/thanh lý khoản trước khi bộ điều khiển đã hoàn thành với nó. Làm cách nào để đảm bảo tài nguyên của tôi được xử lý đúng cách trong tình huống này?
CHỈNH SỬA: Thực hiện của tôi IDisposable
tại thời điểm này chỉ phân phát MemoryStream
. Tôi biết nó không phải là một thực hiện đúng, tôi chỉ sử dụng nó như là một thử nghiệm. Có điều gì khác mà tôi có thể làm ở đây để làm cho nó hoạt động không?
public void Dispose()
{
_ms.Dispose();
_ms = null;
}
Bạn có thể chỉ cho chúng tôi việc triển khai IDisposable được không? – DHN
Đó có phải là '_ms' giống như bạn nhận được sau khi gọi' GetDocumentStream' không? –
@ Jordão: đúng vậy, do đó vấn đề. – fearofawhackplanet