【问题标题】:Preferred namespace naming convention首选命名空间命名约定
【发布时间】:2010-11-18 09:24:40
【问题描述】:

我最近重构了一个中型应用程序,其中一项工作是将常用代码拆分到不同的项目中。

现在,假设常用的命名空间结构是

Core.Interfaces - 用于主应用程序 接口为IFoo

对于每个专门/外部/引用的程序集,我决定对其进行扩展,例如

Core.Interfaces.Html 接口为IBar

主应用程序的Core 程序集位于名为Core 的项目中,默认命名空间为Core,而对于Html 程序集,我创建了一个名为HtmlCore 的项目,默认命名空间为Core .

结果效果(以及我选择此特定方法的原因)是,一旦您引用了 Html 程序集,using 语句就不必更新,最终效果是

Core.Interfaces.IFoo fooIf;
Core.Interfaces.Html.IBar barIf;

或者使用 Core.Interfaces 的 using 语句将上述转换为

IFoo fooIf;
Html.IBar barIf;

这个隐式命名空间结构是依赖关系的直接结果,它确实为我们提供了很好的服务,因为它使项目命名空间维护变得更加容易,并且唯一需要的就是对程序集的引用.该结构类似于微软已经在 .net 框架上所做的。

问题是我有第二个想法,并且(对于未来的项目)我正在考虑为每个程序集明确的命名空间结构,例如:

Core.DataInterfaces
Html.Core.DataInterfaces

那么,有没有人使用过 explicit 结构,甚至是我没有尝试过的其他东西?我愿意接受建议,我正在寻找最佳解决方案,因为目标是在开发过程中从维护和团队混乱中腾出时间。

【问题讨论】:

    标签: .net visual-studio namespaces namespace-organisation


    【解决方案1】:

    按照您认为适合您项目的方式组织命名空间。命名空间用于逻辑分离以避免命名冲突,但显然非常适合组织代码。

    记住,你总是可以给 usings 一个别名。

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 2016-03-25
      • 2015-03-30
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      相关资源
      最近更新 更多