2009-08-19 14 views
17

आप अपने Assembly.dll 1.1.0.0 से 1.2.0.0 को पुनर्निर्देशित करने के लिए BindingRedirect का उपयोग कर सकते हैं।बाइंडिंग रेडियोधर्मी विभिन्न असेंबली नाम

क्या किसी को पता है कि अगर विधानसभा के नाम अलग हैं तो ऐसा करना संभव है।

उदा।

YourAssembly1.dll (v1.1) YourAssembly2.dll (v2.8)

उत्तर

-1

क्यों कुछ इस तरह के लिए एकता या Spring.NET की तरह एक निर्भरता इंजेक्शन ढांचे का उपयोग नहीं करने के लिए पुनर्निर्देश? कॉन्फ़िगर करने के लिए कौन सी फ़ाइल को आसानी से किया जा सकता है।

या शायद YourAssembly1.dll (v1.2) को लोड करें और इसे YourAssembly2.dll पर इसकी कार्यक्षमता का प्रतिनिधि दें?

+0

यदि आपकी प्रारंभिक प्रक्रिया पर कोई नियंत्रण नहीं है तो आपकी सहायता नहीं होती है। – Ryan

+1

आपके प्रश्न के स्पष्टीकरण के लिए धन्यवाद। पोस्ट के लिए मेरा नया जवाब आज़माएं। –

0

मूल असेंबली को डीकंपाइल, संशोधित और पुन: संकलित करने के लिए ILDASM और ILASM का उपयोग करें ताकि यह YourAssembly2.dll का संदर्भ दे सके।

मुझे अपने सिर में विचार मिला और यह संभव है कि यह सत्यापित करने के लिए कुछ खोज करें। Is it possible to modify assembly manifests other than by ILDASM/ILASM hacking? और http://forums.asp.net/t/1582934.aspx/1

1

इस तथ्य के कारण यह संभव नहीं होना चाहिए कि आपके स्वयं के एप्लिकेशन में YourAssembly1 का संदर्भ है।

जब रनटाइम आपके एप्लिकेशन को लोड करता है तो यह असेंबली YourAssembly1.dll (प्रोबिंग और संस्करण रीडायरेक्ट लागू करने) को लोड करने का प्रयास करता है और इसलिए यह विधानसभा YourAssembly2 को लोड नहीं कर सकता है।

5

अगर मुझे सही याद है, तो मैंनेका उपयोग करके लगभग 4 साल पहले ऐसा किया था। विचार यह है कि आपको असेंबलीनाम अनुरोध मिलता है और आप एक असेंबली वापस करते हैं। कुछ मामलों में, मैं रनटाइम पर डायनेमिकएस्क्रिप्ट को उत्पन्न करने में सक्षम था और उसे इंजेक्ट करता था। मैं भूल जाता हूं कि इस पर मजबूत नामकरण के प्रभाव क्या हैं।

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