[英]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.DLL
的User
,而不是当前编译中的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.