在2个DLL的名称空间的名称暧昧类(ambiguous class with namespace n

2019-07-30 02:58发布

我已经导入2个dll文件到我的应用程序(第三方)现在他们两个都具有相同名称的命名空间。 例如AB和他们两人有一个相同的名字再次类。 现在我想创建它们的一个实例,但是因为命名空间和类名相同,编译器去暧昧。 我怎样才能在指定的地方使用女巫的dll?

Answer 1:

让我们假设你有2个组件( ClassLibrary1.dllClassLibrary2.dll ),这两个定义在同一个名字相同的类:

namespace Foo
{
    public class Bar
    {
    }
}

现在,在消费项目中,您可以定义在类库引用的附加别名:

现在,你可以做到以下几点,以帮助编译器消除歧义:

extern alias lib1;
extern alias lib2;

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


Answer 2:

只要一点点改良效果或增强的信息:如果你有多个usings的“外部别名LIB1;” - 行必须是最先的usings的(但也MS VS通知您有关)。



文章来源: ambiguous class with namespace names in 2 dlls
标签: c# instance ddl