我有一個解決方案,其中包含許多項目都使用相同的根名稱空間。沒有代碼文件顯式地命名一個名稱空間。因此,可以說根名稱空間是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