[英]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.