找不到类型或命名空间。 Visual Studio突然要求使用语句的全局前缀

时间:2013-08-21 14:25:50

标签: c# visual-studio namespaces resharper using

之前发生在我身上,我不知道为什么会这样。

假设您有一个简单的C#类,其中 使用 语句在(!)命名空间定义中。它完美无缺地工作了好几个小时。现在我在一个完全不同的项目上工作,突然之前,前一个项目将不再编译,声称命名空间的一部分已经无法找到了。 R#然后建议使用 global :: ...

来解决这个问题

名称空间“Cmp.Internet.Portal.Web”中不存在类型或命名空间名称“Internet”(您是否缺少程序集引用?) < / p>

所以

using Cmp.Internet.Portal.Web.Common;

变为

using global::Cmp.Internet.Portal.Web.Common;

我明白这意味着什么,但我很困惑为什么会这样。 它甚至不应该是必要的。

让它更明显的例子......

我们假设我有3个项目。

  • Project.Core
  • Project.One(引用Project.Core)
  • 和Project.Two(引用Project.Core)

现在 Project.One 可以在其命名空间内使用using语句,而不使用全局前缀。 Project.Two 不能。为什么? ...

1 个答案:

答案 0 :(得分:0)

我认为问题的出现是因为不同的程序集提供了相同的名称空间。之所以发生这种情况,是因为我们处于重构过程中,并且各个类都在程序集之间移动。

一旦每个命名空间仅由一个程序集提供,则global ::前缀变得多余。