2009-07-01 18 views
12

जिज्ञासा से, मैंने 2 विधानसभाएं बनाई हैं जिनमें दोनों समान श्रेणीस्थान (Library1) के साथ एक वर्ग (Class1) है। मैं फिर उन 2 असेंबली का संदर्भ देने वाला एक और क्लाइंट बनाता हूं और Class1 का उदाहरण बनाने का प्रयास करता हूं।2 .NET असेंबली

कंपाइलर, आश्चर्य की बात नहीं है, मुझे संदिग्ध संदर्भ के बारे में एक संकलन-त्रुटि देता है। अस्पष्टता से बचने के लिए उपयोग करने के लिए असेंबली में उस प्रकार को स्पष्ट रूप से निर्दिष्ट करने का कोई तरीका है जिसका उपयोग मैं अस्पष्टता से बचने के लिए करना चाहता हूं?

नोट: मुझे यह शायद ही कभी पता है, अगर कभी भी, अभ्यास में होता है। यह भाषा सुविधा के बारे में जिज्ञासा से सिर्फ एक सवाल है।

उत्तर

10

मुझे लगता है कि आपको ग्लोबल नेमस्पेस के बाहर असेंबली नेमस्पेस को लपेटने के लिए extern alias का उपयोग करना चाहिए।

  1. परियोजना का संदर्भ देता है 2 विधानसभाओं में, संदर्भ के तहत उन में से एक का चयन करें, और गुण विंडो में करने के लिए, कहते हैं, global, Library1aglobal से उपनाम मूल्य बदल: यहाँ कैसे।

  2. अन्य संदर्भ के लिए ऐसा ही करें, लेकिन इसे एक अलग उपनाम दें - चलो हमारे उदाहरण के लिए global, Library1b के साथ जाएं।

  3. असेंबली का उपभोग करने वाले किसी भी वर्ग की पहली 2 पंक्तियों के रूप में extern alias Library1a; और/या extern alias Library1b; डालें।

  4. संदिग्ध सदस्यों तक पहुंचने पर, Library1a. या Library1b. के साथ नामस्थान को अर्हता प्राप्त करें। उदाहरण: Library1a.Library1.Class1...Library1b.Library1.Class1...

1

यह व्यवहार में होता है और एक असली दर्द है, बाहरी उर्फ ​​हमेशा समस्या का समाधान नहीं कर सकते हैं। यहां एक उदाहरण दिया गया है जहां यह एक समस्या है Duplicate Namepsaces

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