Company.Product.Domain
(这表示包含特定于该类的方法的类,我将其命名为“Domain”,这样您就可以看到我在单独的命名空间中使用相同的名称
Company.Product.Domain.Data.Contracts
(此命名空间将用于在WCF服务中使用的所有数据协定)
如果我在Company.Product.Domain
课程中,并尝试使用Company.Product.Domain.Data.Contracts
中的课程,当我尝试输入时,我会到Company.Product.Domain
并且不会显示智能感知进一步。它还表明该引用是一个类,而不是允许我进入命名空间。
我的Company.Product.Domain.Data.Contracts
课程中引用了Company.Product.Domain
。
是否可以在其中包含一个类Company.Product
,还有另一个Company.Product.Domain.Data.Contracts
的命名空间?如果是这样,怎么样?
由于
答案 0 :(得分:5)
是的,这是可能的。但是,你应该像瘟疫一样避免它。它使一切多更复杂。
Eric Lippert最近撰写了一系列关于这个主题的博客文章。不可否认,这不是相当同样的问题 - 他在谈论Foo.Bar.Bar
(其中Foo.Bar
是命名空间,而Bar
是类)但我相信你会遇到许多相同的问题。实际上,我认为你实际上最终可能会使他们更糟而不是他所描述的情景。请不要这样做。
答案 1 :(得分:0)
您可以别名您的Company.Product.Domain.Data名称空间。
所以在你的Domain类中,而不是
using Company.Product.Domain.Data;
尝试类似
的内容using myData = Company.Product.Domain.Data;
namespace Company.Product
{
class Domain
{ ...
myData::Data.method();
}
}
我并不认为intellisense以你想要的方式行事,但它确实消除了Domain class与Domain命名空间的歧义。