关键字 global:: 添加引用时
Keyword global:: when adding reference
我今天遇到一个奇怪的现象,我将一个项目的引用添加到另一个项目并试图使用引用程序集的接口:
情况:
- class
MySampleApplication
在项目MyApplication
中。
- 接口
IMySampleApplication
在引用项目 MyApplication.Interfaces
中。
当我这样做时:
public class MySampleApplication : IMySampleApplication
Resharper 添加以下使用:
using global::MyApplication.Interfaces;
问题:
Why is it adding the global::
prefix and how can I avoid this?
提前致谢
您的项目中可能有另一个名为 MyApplication 的实体隐藏了命名空间。
参见:"How to: Use the Global Namespace Alias (C# Programming Guide)"
您的代码中某处会出现两次 MyApplication
,例如,您可能在本地项目中有一个名为 MyApplication
的 class 以及我的应用程序项目。
本地 MyApplication
将优先于您的 MyApplication 项目中的命名空间,因此将找不到 MyApplication.Interfaces
。为了解决这个问题,可以使用特殊别名 global::
来告诉编译器,在这种情况下 MyApplication
指的是基本命名空间,因此可以正确识别 MyApplication.Interfaces
。
至于如何避免,说起来容易,做起来可能更难:重命名其中一个以消除名称冲突...
我今天遇到一个奇怪的现象,我将一个项目的引用添加到另一个项目并试图使用引用程序集的接口:
情况:
- class
MySampleApplication
在项目MyApplication
中。 - 接口
IMySampleApplication
在引用项目MyApplication.Interfaces
中。
当我这样做时:
public class MySampleApplication : IMySampleApplication
Resharper 添加以下使用:
using global::MyApplication.Interfaces;
问题:
Why is it adding the
global::
prefix and how can I avoid this?
提前致谢
您的项目中可能有另一个名为 MyApplication 的实体隐藏了命名空间。
参见:"How to: Use the Global Namespace Alias (C# Programming Guide)"
您的代码中某处会出现两次 MyApplication
,例如,您可能在本地项目中有一个名为 MyApplication
的 class 以及我的应用程序项目。
本地 MyApplication
将优先于您的 MyApplication 项目中的命名空间,因此将找不到 MyApplication.Interfaces
。为了解决这个问题,可以使用特殊别名 global::
来告诉编译器,在这种情况下 MyApplication
指的是基本命名空间,因此可以正确识别 MyApplication.Interfaces
。
至于如何避免,说起来容易,做起来可能更难:重命名其中一个以消除名称冲突...