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

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

假设您有两个程序集( 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(); } } 

只是一点点改进或增强信息:如果你有多个使用,“extern alias lib1;” – line必须是那些使用中的第一个(但MS VS也告诉你)。