我有一个解决方案,其中包含许多项目都使用相同的根名称空间。没有代码文件显式地命名一个名称空间。因此,可以说根名称空间是ExampleRootNamespace
。VB.NET命名空间问题有关明确(命名)与隐式(全局或根)名称空间
现在,当我想将明确命名的命名空间添加到我正在处理的其中一个代码文件中时,就会出现问题。我希望能够将该代码从程序集的其余部分中分离出来,以便能够对它运行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
我没有在代码库中的任何地方引用它。我目前只是从单元测试项目中引用它。所以我不明白为什么添加这个命名空间会导致问题。
在Vb中它将是Imports。我建议“Imports ExampleRootNamespace = Global.ExampleRootNamespace”http://msdn.microsoft.com/en-us/library/7f38zh8x(VS.71).aspx – MarkJ 2010-09-27 14:34:12
这将无法正常工作,因为您无法使用“全局”进口报表。看到我自己的回答这个线程。感谢Meakins和MarkJ的建议。它确实有助于让代码进行编译。 – Matt 2010-09-27 14:40:49