मैं वर्तमान में एएसपी.नेट एमवीसी 3 आरसी के साथ गतिशील रूप से लोड किए गए क्षेत्रों के साथ प्रयोग कर रहा हूं। मैंने इसे कई स्थानों पर लिखा है कि यह नहीं है कि इस क्षेत्र के लिए क्या उद्देश्य है, और (कम से कम प्री-एमवीसी 2) संभव नहीं है, उदाहरण के लिए here कहें।एएसपी.नेट एमवीसी 3 आरसी क्षेत्र पंजीकरण। रजिस्ट्रारअलएरिया() और गतिशील रूप से लोड असेंबली
लेकिन फिर भी! इसे काम करने के लिए यह संभव होना चाहिए, है ना? मैंने एक समाधान बनाया है, एक एमवीसी 3 परियोजना जोड़ा, एक क्षेत्र और कुछ सामग्री जोड़ा। सब ठीक काम कर रहे हैं। अब मैंने एक नई कक्षा लाइब्रेरी प्रोजेक्ट (उसी समाधान में) बनाया है, एमवीसी-प्रोजेक्ट से इसका एक संदर्भ जोड़ा है, और क्षेत्र से संबंधित भागों को लाइब्रेरी में ले जाना शुरू कर दिया है। पुस्तकालय प्रोजेक्ट की आउटपुट-निर्देशिका को एमवीसी-प्रोजेक्ट के क्षेत्र-फ़ोल्डर में बदल दिया, और सुनिश्चित किया कि दृश्य और उनके web.config को आउटपुट-फ़ोल्डर में कॉपी किया गया है।
इस बारे में बहुत कुछ पढ़ने के बाद कि आप बाहरी क्षेत्रों में कैसे नहीं हो सकते थे, यह आश्चर्यजनक था कि यह काम करता था। वास्तव में कोई समस्या नहीं है! समस्या तब शुरू होती है जब मैं प्रोजेक्ट्स के बीच संदर्भ हटा देता हूं, और इसके बजाय लाइब्रेरी को कोड में लोड करता हूं। (AreaRegistration.RegisterAllAreas()
पर कॉल करने से पहले।) अब यह काम नहीं करता है। बिलकुल।
मैं एमवीसी 3 के स्रोत में थोड़ा सा पोकिंग कर रहा हूं, और समस्या BuildManager.GetReferencedAssemblies()
के साथ प्रतीत होती है जिसका उपयोग AreaRegistration
के कार्यान्वयन को देखने के लिए असेंबली प्राप्त करने के लिए किया जाता है।
अब, मुझे इस बारे में 100% निश्चित नहीं है, लेकिन ऐसा लगता है कि यह विधि केवल उन असेंबली को देखती है जो संकलित समय पर मौजूद/संदर्भित थे, क्या कोई यह पुष्टि कर सकता है कि यह वास्तव में ऐसा है या नहीं?
मैंने इस के माध्यम से डीबग किया है, और उस विधि-कॉल को वास्तव में कॉल करने से पहले लोड की गई असेंबली नहीं मिलती है। यह किसी और चीज के कारण हो सकता है जिसे मैंने शायद याद किया है .. कोई विचार?
बिल्कुल सही जवाब है, धन्यवाद एक मील! हां, मुझे पता है कि फिलहाल यह मूल रूप से एक प्रोजेक्ट होने जैसा ही है, लेकिन मैं उन्हें धीरे-धीरे अलग करना चाहता था और देख रहा था कि मैं एक बार में सभी समस्याओं के बजाय समस्याओं को कहां मारता हूं :) मैं हूं असेंबली में संसाधनों के रूप में विचारों में संकलित होने पर विचार करना और अपना स्वयं का वर्चुअल पथ/फ़ाइल कार्यान्वयन करना, जब तक कि यह एक प्रदर्शन समस्या का अधिक न हो .. जैसा कि मैंने कहा, बस यह देखने के लिए कि क्या संभव है और क्या नहीं है ! फिर से धन्यवाद! – Robin
आप एम्बेड किए गए संसाधन के रूप में अपने क्षेत्र विधानसभा में सभी दृश्यों अंकन को देखो और एक आभासी पथ प्रदाता को लागू करने को देखने के लिए पसंद कर सकते हैं। ड्रैगन ड्रॉप क्षेत्र असेंबली को प्राप्त करने के लिए मैंने यही किया है कि मैं मुख्य साइट की बिन निर्देशिका में बस रख सकता हूं। –
@Joshua हेस - तुम मुझे अपना प्लगेबल क्षेत्रों समाधान भेज सकते हैं? –