首页 > 解决方案 > .NET 命名空间之间的共享类,如何分发它们?

问题描述

前段时间我从这本书中读到,库中的命名空间应该以内部命名空间比其父命名空间具有更多具体类的方式分布。我们可以在命名空间中找到这样的示例,System.Net我们可以在其中找到WebClient类。这个类比命名空间内的Socket具有更高的抽象级别System.Net.Sockets(实际上是WebClientuses Socket)。

我的问题是,父命名空间和后代命名空间使用的所有这些类怎么样?我应该将它们放在哪个命名空间中?我应该创建一个新的不同的东西,叫做类似的东西,然后从、从和从Parent.Shared导入它们吗?ParentParent.ChildParent.Child.GrandChild

标签: c#.netnamespaceslibraries

解决方案


通常,您在父命名空间中有通用类,在子命名空间中有相关类。例如,在 System.Text 中,您没有非常相关的类,例如Encodingor StringBuilder。在System.Text.RegularExpressions所有类中都与正则表达式有关。

其他近似可以是:您在父命名空间中定义一组接口,在每个子命名空间中定义一个具体实现。例如 DataLayer.Repository可以定义接口来实现存储库模式。然后您可以拥有DataLayer.Repository.EntityFrameworkDataLayer.Repository.NHibernate使用不同的 ORM 实现该接口


推荐阅读