我已将2个dll导入我的应用程序(第三方) 现在他们都有一个名字相同的命名空间。 例如A.B 并且在他们两个中都有一个同名的班级。 现在我想创建其中一个的实例,但由于命名空间和类名相同,编译器变得模棱两可。 我如何指定在该地方使用的巫婆?
答案 0 :(得分:33)
假设您有两个程序集(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();
}
}
答案 1 :(得分:-1)
只是一点点改进或增强信息:如果你有多个使用,“extern alias lib1;” - line必须是那些使用中的第一个(但MS VS也会告诉你)。