2012-06-26 11 views
16

मैंने अपने आवेदन (तृतीय पक्ष) पर 2 डीएल आयात किए हैं, अब दोनों के नाम के साथ नामस्थान है। उदाहरण के लिए एबी और उनमें से दोनों में एक ही नाम के साथ एक वर्ग फिर से है। अब मैं उनमें से एक का उदाहरण बनाना चाहता हूं, लेकिन क्योंकि नामस्थान और वर्ग के नाम समान हैं, इसलिए संकलक संदिग्ध हो जाता है। मैं जगह में इस्तेमाल किए गए चुड़ैल डीएलएल को कैसे निर्दिष्ट कर सकता हूं?2 डीएलएस में नामस्थान नाम वाले संदिग्ध वर्ग

namespace Foo 
{ 
    public class Bar 
    { 
    } 
} 

अब लेने वाली परियोजना में आप एक अतिरिक्त अन्य नाम के संदर्भ में निर्धारित कर सकते हैं:

+1

यदि नीचे दिए गए उत्तर काम नहीं करते हैं तो आप खराब हो जाते हैं :) – swapneel

+0

सौभाग्य से उनमें से एक काम करता है :-) –

उत्तर

30

मान लें कि आप 2 विधानसभाओं (ClassLibrary1.dll और ClassLibrary2.dll) है कि दोनों एक ही नाम स्थान में एक ही वर्ग को परिभाषित है कि चलो वर्ग पुस्तकालय:

enter image description here

और अब आप संकलक स्पष्ट करने में सहायता करने के लिए निम्न कर सकता है:

extern alias lib1; 
extern alias lib2; 

class Program 
{ 
    static void Main() 
    { 
     var barFromLib1 = new lib1::Foo.Bar(); 
     var barFromLib2 = new lib2::Foo.Bar(); 
    } 
} 
+0

यह मेरी समस्या के समान था, लेकिन मेरे मामले में, यह मेरा स्वयं का कोड था (एक छोटा सहायक वर्ग) कि मुझे 2 अलग-अलग डीएलएल में उपयोग करने की आवश्यकता थी जो बदले में एक EXE द्वारा उपयोग किया जा रहा था। डारिन का समाधान बहुत अच्छा काम किया! धन्यवाद। –

-1

बस थोड़ा सा सुधार या बढ़ी हुई जानकारी: यदि आपके पास एकाधिक उपयोग हैं, तो "बाहरी उपनाम lib1;" - लाइन उन उपयोगों में से पहला होना चाहिए (लेकिन एमएस वीएस आपको इसके बारे में सूचित करता है)।

+0

आपका उत्तर प्रश्न का उत्तर नहीं देता है। कृपया प्रश्न को ध्यान से पढ़ें –

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