4

在过去,我总是将某个特定项目的命名空间与项目(和原则类)相同,例如:

namespace KeepAlive
{
    public partial class KeepAlive : ServiceBase
    {...

然后从其他项目中,每当我调用该类时,它总是:

KeepAlive.KeepAlive()...

我现在开始认为这可能不是一个好主意,但我有点难倒我的命名空间的实际名称。其他人做什么?您的所有项目是否只有一个命名空间?

4

6 回答 6

7

让一个类的名称与命名空间相同是一个坏主意——在我看来,在某些情况下引用正确的东西变得非常棘手。

我通常将项目(和命名空间)称为适当的名称,然后在适当的地方为入口点设置“EntryPoint”或“Program”。在您的示例中,我可能会调用“KeepAliveService”类。

于 2008-11-14T11:02:19.520 回答
7

我们有这个简单的方案:

  CompanyName.ProductName

然后是应用层,例如

  CompanyName.ProductName.Data
  CompanyName.ProductName.Web

等等

内部按模块和/或功能划分,通常对应于文件夹

  CompanyName.ProductName.Web.Shop
  CompanyName.ProductName.Web.Newsletter

等等

顺便说一句:您可以在此处找到类似问题的答案:

于 2008-11-14T11:22:55.983 回答
5

CompanyName.ProductName.AreaOfSystem.SubAreaOfSystem

永远不要将它们与班级同名。

我们的领域包括:

  • 服务
  • 智能卡
  • 用户界面

子区域很少使用,但在相关时:

  • 智能卡.Mifare
  • 智能卡DESFire

我们的不对应文件夹,因为从逻辑上讲可能并非如此。为了简化解决方案资源管理器的导航,我们可能会在文件夹中分割某些位,但这并不一定意味着命名空间应该遵循文件夹结构。特别是如果文件夹中只有几个文件(类型很少的命名空间通常很愚蠢)。

于 2008-11-14T11:26:07.567 回答
3

我用进入该名称空间的所有事物的通用描述符来命名我的名称空间。

于 2008-11-14T10:59:27.700 回答
0

我喜欢 java 封装方式:com.stackoverflow.Data(或者您公司的主域名可能是什么)。
这样你的命名空间就不会模棱两可了。

于 2008-11-14T12:26:28.647 回答
0

我们坚持旧的

uk.co.company.system.layer

这样我们就可以将冲突减少到最低限度,因为我们使用了大量的 MS Server 产品,它有助于概念分离。

例如。

uk.co.acme.biztalk.bizutils。

于 2008-11-14T12:29:19.547 回答