मैं अपने क्लाइंट के सिस्टम के भीतर वातावरण और क्षेत्रों में तैनात .NET अनुप्रयोगों के बारे में जानकारी रिपोर्ट करने के लिए एक उपकरण लिख रहा हूं।प्रतिबिंब संचालन के लिए .NET असेंबली कैसे लोड करें और बाद में इसे अनलोड करें?
मैं इन असेंबली में असेंबली विशेषताओं के मानों को पढ़ना चाहता हूं।
यह Assembly.ReflectionOnlyLoad
का उपयोग करके हासिल किया जा सकता है, हालांकि यह दृष्टिकोण असेंबली को भी लोड करता है। यहां मुद्दा यह है कि मैं दो असेंबली लोड नहीं कर सकता जिनके पास अलग-अलग पथों से समान नाम है, इसलिए स्वाभाविक रूप से मैं अलग-अलग प्रणालियों में तैनात उसी एप्लिकेशन की तुलना नहीं कर सकता।
इस बिंदु पर मुझे लगता है कि समाधान अस्थायी AppDomain
एस का उपयोग कर शामिल होगा।
कोई व्यक्ति किसी अन्य AppDomain
में किसी असेंबली को लोड करने का विवरण दे सकता है, इसके गुणों को पढ़ सकता है और फिर AppDomain
को अनलोड कर सकता है?
इसे फ़ाइल सिस्टम के साथ-साथ यूआरएल पते पर असेंबली के लिए काम करने की जरूरत है।
धन्यवाद, यह एक उपयोगी पैटर्न की तरह लग रहा है। –
असेंबली नहीं है। रिफॉर्मेशनऑनलीलोड (...) अभी भी मौजूदा डोमेन में असेंबली लोड करता है, न कि अस्थायी ऐपडोमेन में? – Anzurio
एजेड: नहीं। AppDomain.DoCallback "निर्दिष्ट प्रतिनिधि द्वारा पहचाने गए किसी अन्य एप्लिकेशन डोमेन में कोड xecutes" (एमएसडीएन)। असेंबली के दस्तावेज।प्रतिबिंबऑनलीलोड स्पष्ट रूप से बताता है कि "असेंबली कॉलर के एप्लिकेशन डोमेन के प्रतिबिंब-केवल संदर्भ में लोड की जाती है" (फिर से, एमएसडीएन)। इसका मतलब है कि असेंबली वास्तव में अस्थायी ऐप डोमेन में लोड की जाती है। –