2012-06-26 22 views
16

我已經將2個dll導入到我的應用程序(第三方) 現在他們都有一個名稱空間相同的名稱。 例如A.B ,並且在他們兩個中都有一個同名的類。 現在我想創建其中一個實例,但由於命名空間和類名相同,編譯器不明確。 如何指定在該地點使用的女巫dll?命名空間名稱在2個DLL中的模糊類

+1

若跌破答案不工作,那麼你就完蛋了:) – swapneel

+0

幸運的是,他們中的一個工作:-) –

回答

30

讓我們假設你有2個組件(ClassLibrary1.dllClassLibrary2.dll),其無論是在相同的命名空間定義相同的類:

namespace Foo 
{ 
    public class Bar 
    { 
    } 
} 

現在在消費項目中,你可以在的引用定義其他別名類庫:

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個不同的DLL中使用,這些DLL又被EXE使用。 Darin的解決方案效果很好!謝謝。 –

-1

只是一點改進或增強信息:如果你有多個使用,「extern alias lib1;」 - 行必須是那些使用中的第一個(但MS VS也會通知你)。

+0

你的答案不提供問題的答案,請仔細閱讀問題 –

相關問題