मैं ऐसे एप्लिकेशन को विकसित कर रहा हूं जो एक्सेस, एक्सेल, वर्ड, पावरपॉइंट और आउटलुक सहित कई माइक्रोसॉफ्ट ऑफिस उत्पादों पर भारी निर्भर करता है। इंटरऑप पर शोध करते समय मुझे पता चला कि वीएस -2010 और .NET 4 से शुरू होने पर, हमें शुक्रिया को पीआईए के दुःस्वप्न से गुजरना नहीं है।सी # विशेष रूप से एमएस ऑफिस अनुप्रयोगों में COM इंटरऑप ऑब्जेक्ट्स का उचित निपटान
इसके अलावा, मैं वस्तुओं के उचित निपटान पर बहुत से लेख पढ़ रहा हूं, सबसे समझदार एक this एक लग रहा था।
हालांकि, लेख 5 साल पुराना है और इस विषय पर कई आधिकारिक प्रकाशन नहीं हैं।
' Cleanup:
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
GC.WaitForPendingFinalizers()
Marshal.FinalReleaseComObject(worksheet)
oWB.Close(SaveChanges:=False)
Marshal.FinalReleaseComObject(workbook)
oApp.Quit()
Marshal.FinalReleaseComObject(application)
क्या मैं जानना चाहता हूँ वर्तमान मानकों के अनुसार है, यह कैसे सही है और क्या मैं अगर मैं आने वाले कुछ के लिए अपने आवेदन का समर्थन करने की उम्मीद के लिए बाहर देखना चाहिए: यहाँ ऊपर के लिंक से कोड का एक नमूना है वर्षों?
अद्यतन: कुछ विश्वसनीय लेखों के लिंक की अत्यधिक सराहना की जाएगी। वैसे, यह सर्वर साइड एप्लिकेशन नहीं है। यह कंप्यूटर प्रयोगशालाओं में चल रहा है जहां हमारे पास उपयोगकर्ता कार्यालय कार्यालयों के साथ बातचीत करते हैं जिन्हें हम उनके लिए तत्काल बनाते हैं।
इसे प्राप्त करें:This तीन-भाग लेख शायद एक आधिकारिक खाते के सबसे नज़दीक है जिसे मैं ढूंढने की उम्मीद करता हूं।
आपका ऐप चलने के दौरान आपको ऑब्जेक्ट्स को रिलीज़ करने की आवश्यकता क्यों है? जब आपका ऐप निकलता है तो ऑफिस एप्लिकेशन बंद हो जाएगा। – adrianm
हां मुझे पता है कि ऐप डोमेन के उतारने पर उचित जीसी किया जाएगा। हालांकि, मेरा परिदृश्य एक सर्वर-साइड ऐप और न ही एक ऑफ क्लाइंट ऐप है। यह एक मिश्रण है जहां मुझे यह सुनिश्चित करने की ज़रूरत है कि अगले उपयोगकर्ता को समायोजित करने से पहले किसी भी खुले इंस्टेंस को ठीक से बंद कर दिया गया हो। –
इसी तरह के विषय पर: http://stackoverflow.com/questions/158706/how-to-properly-clean-up-excel-interop-objects/159419#159419 – rkagerer