如何选择具有相同名称的两个名称空间之一

时间:2015-08-10 17:28:56

标签: c#

我的解决方案是名为共享的项目和另一个名为 Foo1的项目。

Foo1 中,我创建了一个名为共享的文件夹,因此我在解决方案中找到了两个名为“共享”的命名空间。

我在项目 Foo1

中添加了项目共享的引用

但现在,当我在 Foo1 中的文件中输入 时,IntelliSense不会显示共享命名空间。

如何在文件中指定我要使用 Foo1 共享项目的共享命名空间?

注意:我想要使用 Share 命名空间的文件位于项目的根目录中(我的意思是在共享文件夹之外)

2 个答案:

答案 0 :(得分:2)

给出以下解决方案结构:

解决方法1

---共享(项目)

--- Foo1(项目

--- ===共享(命名空间/目录)

我的理解是你要在Foo1根目录中的文件中引用Foo1.Shared命名空间中的某些内容,可能是在Foo1名称空间中。

如果这一切都正确,您可以使用别名显式引用两个Shared命名空间中的每一个,如下所示:

using SolutionWideShared = Shared;
using Foo1Shared = Foo1.Shared;

现在可以使用别名引用任一名称空间中的任何类,如下所示:

var blah = new SolutionWideShared.SomeClassInTheSharedProject();

var bling = new Foo1Shared.SomeClassInFoo1ProjectInSharedNamespace();

这只是一个解决方案,但我是明确代码的粉丝,这将产生一些非常易读,非混乱的代码。

答案 1 :(得分:0)

理想情况下,您应该重新考虑您的命名,并尝试更具描述性。什么是“共享”?它和Foo.Shared有什么不同?在生产质量代码中,这将要求重构和重命名,IMO。如果这只是一个虚拟游戏项目,您正在使用它来证明某些点或使用某些代码 - 然后使用别名。

using FooShared = Foo.Shared;

因此,您将拥有Shared,这是您的初始共享项目,FooShared