[英]How to select one of two namespaces with the same name
我有一個名為Shared的項目和另一個名為Foo1的項目的解決方案。
在Foo1中,我創建了一個名為Shared的文件夾,因此我在解決方案中有兩個名為Shared的名稱空間。
我在項目Foo1中添加了項目Shared的引用
但是現在當我在Foo1中 使用文件鍵入時, IntelliSense不顯示共享命名空間。
如何在文件中指定我要在Foo1中使用Shared項目中的Shared命名空間?
注意:我想使用Share命名空間的文件位於項目的根目錄中(我的意思是在Shared文件夾之外)
給出以下解決方案結構:
解決方法1
---共享(項目)
--- Foo1(項目
--- ===共享(命名空間/目錄)
我的理解是你想從Foo1根目錄中的文件中引用Foo1.Shared命名空間中的某些東西,可能是在Foo1命名空間中。
如果這一切都正確,您可以使用別名顯式引用兩個Shared命名空間中的每一個,如下所示:
using SolutionWideShared = Shared;
using Foo1Shared = Foo1.Shared;
您現在可以使用別名引用任一命名空間中的任何類,如下所示:
var blah = new SolutionWideShared.SomeClassInTheSharedProject();
要么
var bling = new Foo1Shared.SomeClassInFoo1ProjectInSharedNamespace();
這只是一個解決方案,但我是顯式代碼的粉絲,這將使一些非常易讀,非混亂的代碼。
理想情況下,您應該重新考慮您的命名,並嘗試更具描述性。 什么是“共享”? 它和Foo.Shared有什么不同? 在生產質量代碼中,這將要求重構和重命名,IMO。 如果這只是一個虛擬游戲項目,您正在使用它來證明某些點或使用某些代碼 - 然后使用別名。
using FooShared = Foo.Shared;
因此,您將擁有Shared
,這是您的初始共享項目,以及FooShared
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.