c# - 另一个 DLL 中的系统命名空间

标签 c# .net sterling-db

这是我的问题:

我正在使用一个 DLL 库(不是来自 .NET 框架),它包含一个带有 TupleLazy 类的 System 命名空间。

当我尝试编译我的项目时,编译器抛出一些错误,指出这些类存在于 mscorlib.dll 和另一个 DLL 中。

那么,如何使用 .NET Framework 中的类而不删除对其他 DLL 的引用?

最佳答案

如果它们具有相同的命名空间等,那么消除歧义的唯一方法是使用外部别名。在解决方案资源管理器中,将此恶意引用的 Aliases 属性更改为其他内容,例如 foo(而不是 global)。

现在,在需要该程序集类型的类文件中,您必须添加(在最顶部):

extern alias foo;

然后在后面的代码中您可以使用:

foo::Some.Namespace.TheType

或者同样地:

foo.Some.Namespace.TheType

基本上,别名成为消歧的额外层次。作为引用,默认别名是 global。另请注意,虽然编译器对此没有问题,但 VS2012 IDE 仍然有一些...扭结 extern alias: https://connect.microsoft.com/VisualStudio/feedback/details/770464/ide-but-not-compiler-incorrectly-reports-an-error-when-using-extern-alias-to-disambiguate-types

关于c# - 另一个 DLL 中的系统命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13361816/

相关文章:

c# - HtmlNode 从嵌套范围获取内部文本

c# - 获取gridview中DataField的列表

c# - .NET 中的 PHPs htmlspecialcharacters 是否等效?

c# - 银光 : Sterling Throws Exception

c# - 包括 IDN 字符的域名正则表达式 c#

c# - NHibernate 映射到另一个不在 ID 上的对象

c# - 从泛型类继承时什么时候应该使用 new() 关键字?

.net - 在 .NET 中构建 DSL 的工具

c# - 有没有比序列化 XML 更好的东西来在 C# 中存储可以在我自己的程序集中编译的简单数据库?