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

时间:2012-06-26 08:52:24

标签: c# instance ddl

我已将2个dll导入我的应用程序(第三方) 现在他们都有一个名字相同的命名空间。 例如A.B 并且在他们两个中都有一个同名的班级。 现在我想创建其中一个的实例,但由于命名空间和类名相同,编译器变得模棱两可。 我如何指定在该地方使用的巫婆?

2 个答案:

答案 0 :(得分:33)

假设您有两个程序集(ClassLibrary1.dllClassLibrary2.dll),它们在同一名称空间中定义了相同的类:

namespace Foo
{
    public class Bar
    {
    }
}

现在在使用消费项目中,您可以在类库的引用中定义一个额外的别名:

enter image description here

现在您可以执行以下操作来帮助编译器消除歧义:

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也会告诉你)。