2012-06-26 24 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

你的答案不提供问题的答案,请仔细阅读问题 –

相关问题