繁体   English   中英

具有相同类别名称的DLL

[英]Dll with same class name

我创建了一个外部dll,其类名称为: User 我将其导入了另一个具有相同类名User 现在,如果我输入: User. 为了访问dll方法,Intellisense会反而向我显示我自己程序的User类的方法。 一个实践示例:

[DLL]:

public class User{
  ... some method ...
}

[实现dll的程序]

using User;

public class User{

      public void getUsers(){
            User. //can't access to dll method
      }
}

有解决这个问题的主意吗? 请注意,名称空间是不同的。

从您的示例很难看出来,但是看起来您想要的是一个extern别名指令 您可以在此处阅读有关它们的简短教程:

https://blogs.msdn.microsoft.com/ansonh/2006/09/27/extern-alias-walkthrough/

命令行表格的文档在这里:

https://msdn.microsoft.com/zh-CN/library/ms173212.aspx

让我们假设您的DLL程序集是Foo.DLL。 因此,您要做的是,首先将别名添加到所引用的Foo.DLL,将别名称为“ Foo”。 其次,将指令添加到名称空间指令中:

extern alias Foo;

然后在您的程序中可以说Foo::User ,编译器将知道您是指Foo.DLLUser ,而不是当前编译中的User

使用DLL的完整名称空间来调用User类。 像这样:

YourClassLibrary1.User user = new YourClassLibrary1.User();
user.getUsers();

或使用这样的别名:

using DLLUser = ClassLibrary1.User;

然后:

DLLUser user = new DLLUser();
user.getUsers();

您还可以在代码中使用别名:

using MyUser = User;

public class User{

      public void getUsers(){
            MyUser.User.<any property or public method>
      }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM