关于显式(命名)与隐式(全局或根)命名空间的 VB.NET 命名空间问题

标签 vb.net namespaces global implicit explicit

我有一个解决方案,其中包含许多使用相同根命名空间的项目。没有代码文件明确命名命名空间。所以让我们说根命名空间是 ExampleRootNamespace .

现在,当我想将显式命名的命名空间添加到我正在处理的代码文件之一时,就会出现问题。我希望能够将此代码与程序集的其余部分隔离,以便能够对其运行 FxCop。所以我添加了类似 Namespace Interfaces.CSV 的内容到代码文件。

这导致任何引用此程序集的代码都需要说 Imports ExampleRootNamespace.Interfaces.CSV .到现在为止还挺好。我什至可以对程序集运行 FxCop。现在的问题是,在其他程序集中,我不能再说这样的话:

Public class frmInputBoolean Inherits
 ExampleRootNameSpace.frmFormTemplate

Visual Studio 现在要求我将命名空间重命名为:
Public class frmInputBoolean Inherits
     Global.ExampleRootNameSpace.frmFormTemplate

有数百个与此相关的错误。所以我的问题是:

1)为什么基本上第一次在根下命名命名空间会导致程序出现问题?

2) 不重命名是否有解决此问题的方法?

我还想补充一点关于 ExampleRootNamespace.Interfaces.CSV我没有在代码库中的任何地方引用它。我目前只是从单元测试项目中引用它。所以我不明白为什么添加这个命名空间会导致问题。

最佳答案

在 C# 中尝试使用 USING操作符与您的命名空间。

using ExampleRootNamespace = newExampleRootNamespace;

关于那些有全局问题的人。

可悲的是,我不相信在 VB.NET 中存在一个简单的解决方案

关于关于显式(命名)与隐式(全局或根)命名空间的 VB.NET 命名空间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3804518/

相关文章:

vb.net - VB.NET中的方法组?

.net - FastColoredTextbox 问题滚动文本和定位插入符

c# - 使用 .NET 在 sAMAccountName 中创建超过 20 个字符的用户时出错

php - ReflectionException 类 UserController 不存在 Laravel5.4

scala - 如何在 Scala 中构建合适的命名空间?

vb.net - 如果在其中一个线程中检测到错误,则停止所有线程

带/不带命名空间的 XML

powershell - Jenkins:在PowerShell中访问全局密码

javascript - gulp 任务在没有全局对象的情况下共享一个公共(public)设置

php - GLOBALS 和 GLOBAL 有什么区别?