在过去,我总是离开并为特定项目调用我的命名空间与项目(和原则类)相同,例如:
namespace KeepAlive
{
public partial class KeepAlive : ServiceBase
{...
Run Code Online (Sandbox Code Playgroud)
然后在其他项目中,每当我调用该类时,它始终是:
KeepAlive.KeepAlive()...
Run Code Online (Sandbox Code Playgroud)
我现在开始认为这可能不是一个好主意,但我有点难以实际调用我的命名空间.其他人做什么?您是否只为所有项目设置了一个命名空间?
让一个类的名称与命名空间相同是一个坏主意 - 在我看来,在某些情况下引用正确的东西是非常棘手的.
我通常将项目(和命名空间)称为适当的名称,然后在适当的位置使用"EntryPoint"或"Program"作为入口点.在您的示例中,我可能会将类称为"KeepAliveService".
我们有这个简单的方案:
CompanyName.ProductName
Run Code Online (Sandbox Code Playgroud)
然后是应用层,例如
CompanyName.ProductName.Data
CompanyName.ProductName.Web
Run Code Online (Sandbox Code Playgroud)
等等
并且内部按模块和/或功能划分,通常对应于文件夹
CompanyName.ProductName.Web.Shop
CompanyName.ProductName.Web.Newsletter
Run Code Online (Sandbox Code Playgroud)
等等
顺便说一句:你可以在这里找到类似问题的答案:
CompanyName.ProductName.AreaOfSystem.SubAreaOfSystem
永远不要称他们为同一个名字.
我们的领域包括:
子区域被谨慎使用但在相关时:
我们不对应文件夹,因为逻辑上可能不是这种情况.为了简化解决方案资源管理器导航,我们可能会删除文件夹中的某些位,但这并不一定意味着命名空间应该遵循文件夹结构.特别是如果文件夹中只有少量文件(具有少量类型的命名空间通常是愚蠢的).