我已经导入2个dll文件到我的应用程序(第三方)现在他们两个都具有相同名称的命名空间。 例如AB和他们两人有一个相同的名字再次类。 现在我想创建它们的一个实例,但是因为命名空间和类名相同,编译器去暧昧。 我怎样才能在指定的地方使用女巫的dll?
Answer 1:
让我们假设你有2个组件( ClassLibrary1.dll
和ClassLibrary2.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