2个dll中带有命名空间名称的模糊类

Meh*_*dad 18 c# ddl instance

我已经为我的应用程序导入了2个dll(第三方)现在它们都有一个名称相同的命名空间.例如AB,在它们两个中都有一个同名的类.现在我想创建其中一个的实例,但由于命名空间和类名相同,编译器变得模棱两可.如何指定在该地方使用的巫婆?

Dar*_*rov 33

假设您有两个程序集(ClassLibrary1.dllClassLibrary2.dll),它们在同一名称空间中定义相同的类:

namespace Foo
{
    public class Bar
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

现在在使用项目中,您可以在类库的引用中定义另一个别名:

在此输入图像描述

现在您可以执行以下操作来帮助编译器消除歧义:

extern alias lib1;
extern alias lib2;

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