4

我可以在程序集中安排我的代码以强制执行正确的命名空间依赖关系:

Company.Product.Domain assembly
Company.Product.DataAccessLayer assembly
  -References Company.Product.Domain
Company.Product.Application assembly
  -References Company.Product.Domain
  -References Company.Product.DataAccessLayer

因为循环程序集引用是不可能的,所以我可以确定我不是从域内引用 DAL。

但是,当您有多个域时,这会导致大量程序集,我想简单地使用命名空间来组织项目,如下所示:

Company.Product assembly
  -Company.Product.Domain namespace
  -Company.Product.DataAccessLayer namespace
  -Company.Product.Application namespace

有什么方法可以防止或警告我不想要的命名空间依赖项。

如果有人知道“代码检查->自定义模式”解决方案,我会更清楚。

4

1 回答 1

3

我自己也遇到了同样的问题,但没有找到我自己创建的正确工具。使用(猜猜看):罗斯林。

它是开源的,它在这里: http: //nsdepcop.codeplex.com

它是这样工作的:

  • 您必须在 XML 文件中定义允许的命名空间依赖项(每个项目一个文件)。
  • 该工具已集成到 MSBuild 流程中,因此它会在您每次构建时运行,并为每个违反依赖规则的源代码段提供警告/错误。
  • 如果您安装 Roslyn 最终用户预览版(适用于 VS2013),那么它还会集成到 Visual Studio 中,并在您键入代码时提供反馈(无需构建即可解决问题)。
于 2014-09-13T16:35:22.763 回答