之前发生在我身上,我不知道为什么会这样。
假设您有一个简单的C#类,其中 使用 语句在(!)命名空间定义中。它完美无缺地工作了好几个小时。现在我在一个完全不同的项目上工作,突然之前,前一个项目将不再编译,声称命名空间的一部分已经无法找到了。 R#然后建议使用 global :: ...
来解决这个问题名称空间“Cmp.Internet.Portal.Web”中不存在类型或命名空间名称“Internet”(您是否缺少程序集引用?) < / p>
所以
using Cmp.Internet.Portal.Web.Common;
变为
using global::Cmp.Internet.Portal.Web.Common;
我明白这意味着什么,但我很困惑为什么会这样。 它甚至不应该是必要的。
让它更明显的例子......
我们假设我有3个项目。
现在 Project.One 可以在其命名空间内使用using语句,而不使用全局前缀。 Project.Two 不能。为什么? ...
答案 0 :(得分:0)
我认为问题的出现是因为不同的程序集提供了相同的名称空间。之所以发生这种情况,是因为我们处于重构过程中,并且各个类都在程序集之间移动。
一旦每个命名空间仅由一个程序集提供,则global ::前缀变得多余。