我有以下代码(如果我留下警告,它可以编译并且工作正常,我没有使用 global:: hack 对其进行测试):
namespace NotifierService.Models {}
namespace NotifierService
{
using Models;
}
'using Models' 语句带有下划线(在错误列表中,这只是一个警告级别的问题):
命名空间“NotifierService.Models”的使用指令应该是合格的
因此,我将其限定为:
using NotifierService.Models;
并得到以下错误级别问题:
“NotifierService”类型中不存在类型名称“Models”
PS我知道我可以通过使用以下内容来“破解”它以消除警告/错误,但我试图了解它发生的原因/原因,因为这种影响在应用程序范围内会影响多个命名空间。
using global::NotifierService.Models;
回答: Fildor 给了我一个解决方案...有一个问题,因为在我的 Windows 服务中,基类使用与命名空间相同的名称,因此通过重命名所有命名空间,应用程序编译时没有问题(一旦我完全限定了 using 语句。
但是我刚刚实现了一个更简洁的解决方案(因为我更喜欢命名空间与项目具有相同的名称,因为它使将来的引用更符合逻辑/可维护):
保持命名空间不变,在我使用 NotifierService.Models 命名空间中的类的地方,我只是简单地引用它们,如下所示:
List<Models.TaxiModel>
这让我可以删除“使用模型”......虽然仍然看起来有点奇怪和“hacky”。