का संदर्भ देता है मेरा एप्लिकेशन अपने निष्पादन पथ में स्थित सभी लाइब्रेरी असेंबली लोड करता है और निहित कक्षाओं के खिलाफ पूर्व ज्ञात विधियों को निष्पादित करता है।रनिंग समय पर एक असेंबली लोड करें जो कॉलिंग असेंबली
अब मुझे एक ऐसी असेंबली के साथ ऐसा करने की ज़रूरत है जो मेरे आवेदन असेंबली का संदर्भ देता हो। क्या यह संभव है और क्या कोई नकारात्मक प्रभाव है जिसके बारे में मुझे अवगत होना चाहिए?
मास्टर विधानसभा:
public abstract class TaskBase
{
public abstract void DoWork();
}
LoadAssemblyFromFile("Assembly0001.dll");
Assembly0001.Task1.DoWork();
बाल सभाओं:
public sealed class Task1: MasterAssembly.TaskBase
{
public override void DoWork { /* whatever */ }
}
मैं इसे बिना किसी समस्या के हर समय करता हूं। एकमात्र गोचा जिसे मैंने चलाया है (वास्तव में कुछ बार) _master_ असेंबली का संस्करण प्रबंधन है। यदि आप बच्चों को पुन: संकलित किए बिना _master_ में परिवर्तन करते हैं तो आप कुछ विचित्र समस्याओं में भाग ले सकते हैं। –
@ एम। बाबाकॉक: धन्यवाद। जिज्ञासा से बाहर, किस तरह की समस्याएं? मैं recompile पर असेंबली संस्करणों को स्वत: वृद्धि नहीं करता हूं। मुझे लगता है कि जो भी मुद्दे आप सामना कर सकते हैं उसे बाईपास करना चाहिए। तुम्हारे विचार? –
मुझे सामना करना सबसे आम समस्या यह है कि एक विधि परिभाषा पिछड़े संगतता को तोड़ने में बदलती है, हालांकि अन्य मामलों में मैंने डरावना अनुभव किया है "_Type_ दोनों _Master_ और _Master_" अपवाद में परिभाषित किया गया है (स्मृति से इसलिए शाब्दिक पाठ नहीं है, लेकिन बंद करें पर्याप्त है कि आप इसे पहचान लेंगे)। –