gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:17:13 25 4
gpt4 key购买 nike

这是我的问题:

我正在使用一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com