我已经向我的应用程序(第三方)导入了 2 个 dll 现在它们都有一个同名的命名空间。例如 AB 并且在它们两者中都有一个具有相同名称的类。现在我想创建其中一个的实例,但由于命名空间和类名相同,编译器变得模棱两可。如何指定在该地方使用的女巫 dll?
问问题
7490 次
2 回答
35
假设您有 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();
}
}
于 2012-06-26T09:10:55.567 回答
-1
只是一点改进或增强的信息:如果您有多个使用,“外部别名 lib1;”-line 必须是这些使用中的第一个(但 MS VS 也会通知您)。
于 2017-07-19T10:08:39.717 回答