Mik*_*sen 5 .net c# namespaces
要解决在C#组件之间的冲突的命名空间,我给了一个一个别名的NLog:

现在,我可以指一个命名空间内等,使得组装:
public class Logger : NLog::NLog.LogReceiverService
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是,在我使用extern alias文件顶部的关键字之前,这不会编译:
extern alias NLog;
Run Code Online (Sandbox Code Playgroud)
我的问题:
extern alias关键字的用途是什么?应该NLog::NLog.LogReceiverService不足以完全消除我所指的程序集别名,命名空间和类型的歧义?
小智 4
在引用上设置 Aliases 属性只会将其指定为该别名,而程序集引用的初始加载是在运行时为项目完成的。为了在文件中使用别名程序集引用,您必须指定要通过 extern alias 关键字使用它,该关键字设置编译器指令来查找该别名。
您可能会认为他们会有某种类型的全局别名,但我认为他们会强制使用显式别名,因为别名会影响性能。
以下是有关 extern 别名的参考资料:http://msdn.microsoft.com/en-us/library/ms173212.aspx