यहाँ सेटअप है। कक्षा पुस्तकालय एक प्लगइन के रूप में कार्य करता है। इस प्लगइन लोड का अपना छोटा बच्चा प्लगइन्स (सभी DotNet कक्षा पुस्तकालय), और यहहल विधानसभाओं, फजी रास्ता
Assembly asm = Assembly.Load(COFF_Image);
एक बाइट-धारा के रूप में स्मृति में dll पढ़ने, तो समस्या पैदा होती है उन छोटे बच्चे प्लगइन्स संदर्भ हो जब से ऐसा नहीं करता है अन्य डीएलएस के लिए। चूंकि वे डिस्क से सीधे स्मृति के माध्यम से लोड होते हैं, इसलिए ढांचे को अक्सर इन संदर्भित असेंबली नहीं मिलती हैं और इस प्रकार उन्हें लोड करने में असमर्थ है।
मैं अपने प्रोजेक्ट में एक असेंबली रीसोल्वर हैंडलर जोड़ सकता हूं और मैं इन संदर्भित असेंबली को पिछले छोड़ सकता हूं। मेरे पास डिस्क पर इन संदर्भित असेंबली कहां मिलें, इस बारे में मुझे एक अच्छा विचार है, लेकिन मैं यह कैसे सुनिश्चित कर सकता हूं कि Assmebly I लोड सही है?
संक्षेप में, मैं विश्वसनीय रूप से सिस्टम से कैसे जा सकता हूं। ResolveEventArgs.Name फ़ील्ड को एक डीएलएल फ़ाइल पथ पर, मान लीजिए कि मेरे पास सभी फ़ोल्डर्स की एक सूची है जहां यह डीएल छुपाया जा सकता है)?
सैम, यह थोड़ा अपर्याप्त नहीं है, जिसमें यह वांछित रूप से असेंबली लोड करता है जब तक कि यह सही न हो? –
यह केवल उन डीएलएस को लोड करता है जिनके पास असेंबली के समान नाम है जिसे हम हल करने का प्रयास कर रहे हैं। जो मैंने किया है, इसका मतलब है कि यह केवल 1 डीएल लोड करता है, लेकिन यदि डीएल और असेंबली के पास समान नाम नहीं हैं तो आपको प्रत्येक डीएलएल लोड करना होगा और जिस नाम को आप ढूंढ रहे हैं उसके खिलाफ असेंबली नाम जांचना होगा। –
और मुझे लगता है कि मेरे ऐपडोमेन को प्रदूषित करने से रोकने का एकमात्र तरीका एक और ऐपडोमेन बनाना है और उन्हें पहले लोड करना है? –