2个dll中带有命名空间名称的模糊类
我已经为我的应用程序导入了2个dll(第三方)现在它们都有一个名称相同的命名空间。 例如AB,在它们两个中都有一个具有相同名称的类。 现在我想创建其中一个的实例,但由于命名空间和类名相同,编译器变得模棱两可。 我怎样才能指定在这个地方使用的巫婆dll?
假设您有两个程序集( 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(); } }
只是一点点改进或增强信息:如果你有多个使用,“extern alias lib1;” – line必须是那些使用中的第一个(但MS VS也告诉你)。