मेरे पास कक्षा DocumentGenerator
है जो MemoryStream
को लपेटती है। तो मैंने कक्षा में IDisposable
लागू किया है।एएसपी.नेट में फ़ाइल डाउनलोड को लागू करते समय मैं अपने फाइलस्ट्रीम का निपटान कैसे करूं?
मैं नहीं देख सकता कि मैं इसे कहां/कहाँ संभवतः निपट सकता हूं।
यह मेरे वर्तमान कोड है, जो MVC में एक फ़ाइल डाउनलोड करता है:
using (DocumentGenerator dg = DocumentGenerator.OpenTemplate(path))
{
/* some document manipulation with the
DocumentGenerator goes here ...*/
return File(dg.GetDocumentStream(), "text/plain", filename);
}
इस त्रुटि के रूप में धारा निपटाए से पहले नियंत्रक इसके साथ समाप्त हो गया है बंद कर दिया है /। मैं कैसे सुनिश्चित कर सकता हूं कि इस स्थिति में मेरे संसाधनों का उचित तरीके से निपटान किया जा सके?
संपादित करें: इस समय IDisposable
का मेरा कार्यान्वयन बस MemoryStream
का निपटान करता है। मुझे पता है कि यह उचित कार्यान्वयन नहीं है, मैंने अभी इसे एक परीक्षण के रूप में इस्तेमाल किया है। क्या यह काम करने के लिए मैं कुछ अलग कर सकता हूं?
public void Dispose()
{
_ms.Dispose();
_ms = null;
}
क्या आप हमें IDISposable के कार्यान्वयन को दिखा सकते हैं? – DHN
क्या '_ms' वही है जो आपको 'GetDocumentStream' पर कॉल करने के बाद मिलता है? –
@ Jordão: हाँ यह सही है, इसलिए समस्या है। – fearofawhackplanet