2011-10-19 8 views
12

मैं एक लूप में असेंबली.लोडफाइल (असेंबलीफाइलपाथ) का उपयोग करके असेंबली लोड कर रहा हूं और मैं असेंबली कॉलिंग से बचना चाहता हूं। लोडफाइल अगर असेंबली पहले ही लोड हो चुकी है। क्या मुझे असेंबली को कॉल करने के बारे में चिंतित होना चाहिए। डीएलएल के लिए बार-बार लोडफाइल जो पहले ही लोड हो चुका है? धन्यवाद।मैं एक असेंबली को गतिशील रूप से लोड करने से कैसे बच सकता हूं कि मैंने पहले ही प्रतिबिंब का उपयोग करके लोड किया है?

+1

लोड() और लोडफाइल() अलग-अलग संदर्भों में असेंबली लोड करता है। आप LoadFile() का उपयोग क्यों करते हैं यदि वे ऐसे फ़ोल्डर में हैं जो असेंबली नाम से मिलेगा? इन लेखों को देखें: http://blogs.msdn.com/b/suzcook/archive/2003/09/19/loadfile-vs-loadfrom.aspx http://blogs.msdn.com/b/suzcook/archive/2003 /05/29/57143.aspx – jishi

उत्तर

19

नहीं, तुम तो आप एक ही विधानसभा कई बार लोड कर सकते हैं) अगर एक विधानसभा पहले से ही लोड किया गया है इसे फिर से लोड नहीं किया जाएगा क्योंकि

आप Assembly.LoadFile (कॉल चिंतित होने की जरूरत नहीं है, लेकिन केवल तभी जब आप प्रत्येक बार अलग-अलग पथ से असेंबली लोड कर रहे हों। आप Assembly.Load() का उपयोग कर सकते हैं जो केवल एक बार असेंबली लोड करेगा। तुम भी दिया AppDomain के लिए

Assembly[] asms = AppDomain.CurrentDomain.GetAssemblies(); 
+4

और ऐसा लगता है कि असेंबली। लोडफाइल कम से कम उतना ही कुशल है जितना कि असेंबली लोड हो जाती है (शायद अधिक कुशल) AppDomain.CurrentDomain.GetAssemblies() के माध्यम से मैन्युअल रूप से गणना करने से। – DeCaf

0

का उपयोग कर वर्तमान एप्लिकेशन डोमेन पहले से ही भरी हुई विधानसभाओं के बारे में पा सकते हैं, तो आप GetAssemblies फोन करें और देखें कि यह भरी हुई है सकते हैं।

संबंधित मुद्दे