.net - 如何避免 "vertically partitioned"程序集中的命名空间和类名冲突?

标签 .net assemblies namespaces naming

“垂直分区”是指以模块命名的命名空间,而不是“层”

所以,

  • MyApp.Core
  • MyApp.Accounting
  • MyApp.OrderManagement
  • MyApp.HR

  • 代替,
  • 我的应用程序.UI
  • MyApp.Business
  • 我的应用程序数据

  • 我遇到的唯一问题是,有时这些程序集可能具有与类型名称相同的命名空间的一部分。

    假设我创建了一个与帐户相关的模块,并将其命名为 MyApp.Account.dll,基本命名空间为 MyApp.Account。不可避免地,我需要创建一个名为 Account 的类。然后我必须使用命名空间或类型别名。

    除了对名称非常有创意外,还有其他人经历过这种方式切割组件并处理名称冲突问题吗?

    最佳答案

    过去,我处理过这两种方式:

    1)复数命名空间或在适当的地方使它们成为动名词(添加 -ing 后缀)。例如,MyApp.Orders可以安全地包含 Order类(class)。 (同样,坚持使用“MyApp.Accounting”而不是“MyApp.Account”)。

    2) 通过附加 Domain到命名空间(有点不满意,但有效)。

    关于.net - 如何避免 "vertically partitioned"程序集中的命名空间和类名冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3168883/

    相关文章:

    .net - 有没有办法将动态或匿名对象转换为强类型的声明对象?

    c# - 从 dotnet 程序集检索资源

    c++ - pimpl 是否与匿名命名空间兼容?

    python - exec() 方法中自定义命名空间的子类 python 字典

    .net - t4 在 csproj 文件中生成没有 DependentUpon 属性的文件

    c# - 如何从当前 .NET 表单/应用程序发送按键 F12

    c# - .Net 类通过 SSH 在 Linux 上远程执行?

    c# - 在 C#/.NET 中运行应用程序之前检查 DLL 是否真实/正确

    c# - 不使用 AssemblyName 解析程序集限定名

    c# - TypeScript 中的命名空间关键字