前段时间我读到这个 book库中的命名空间应该以内部命名空间比其父命名空间具有更多具体类的方式分布。我们可以在命名空间 System.Net
中找到这样的例子。 ,我们可以在这里找到类 WebClient .此类具有比 Socket 更高的抽象级别这是在 System.Net.Sockets
里面命名空间(实际上, WebClient
使用 Socket
)。
我的问题是,父命名空间和后代命名空间使用的所有这些类怎么样?我应该将它们放在哪个命名空间中?我应该创建一个名为 Parent.Shared
之类的新的不同的东西吗?并从 Parent
导入它们,来自 Parent.Child
来自 Parent.Child.GrandChild
?
最佳答案
通常,父命名空间中有通用类,子命名空间中有相关类。例如,在 System.Text 中,您没有非常相关的类,例如 Encoding
或 StringBuilder
.在 System.Text.RegularExpressions
所有的类都与正则表达式相关。
其他近似值可以是:
您在父命名空间中定义一组接口(interface),并在每个子命名空间中定义一个具体实现。例如DataLayer.Repository
可以定义接口(interface)来实现存储库模式。然后你就可以拥有 DataLayer.Repository.EntityFramework
和 DataLayer.Repository.NHibernate
使用不同的 ORM 实现该接口(interface)
关于c# - .NET 命名空间之间的共享类,如何分配它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51943613/