如何解决在我的项目中查找名称空间依赖项的工具?
| 依赖性Walker似乎是查找模块(DLL)依赖性的好工具。但是,如果我将所有这些“模块”都放在同一个程序集中,并用如下所示的命名空间分隔怎么办?namespace Root.ModuleA { ... }
namespace Root.ModuleB { ... }
namespace Root.ModuleC { ... }
是否存在可以找出我程序集中的名称空间依赖关系的工具,例如Root.ModuleC
在Root.ModuleA
中使用东西?
解决方法
为了完成tijmenvdk注释,提出了两个有关命名空间依赖周期的默认规则(通过LINQ查询,CQLinq):
避免名称空间依赖周期
避免名称空间相互依赖
您现在可以在代码上尝试这些规则,NDepend提出了一个免费的,具有时间限制的全功能试用版。然后,您可以将名称空间之间的依赖关系导出到依赖关系图或依赖关系矩阵(如果您有数十个命名空间,则矩阵更适合):
依赖关系图可能看起来像(注意红色的名称空间在一个周期中纠缠在一起):
依赖关系矩阵看起来像(注意,循环用红色正方形突出显示)
要进一步讲解,您可以阅读有关通过程序集和名称空间对.NET代码进行分区的这两本白皮书。最近,Hendry Luk还撰写了一篇完整的博客文章,内容涉及在其项目SheepAop中摆脱名称空间依赖关系的循环。
免责声明:我是该工具的开发人员之一
, 您是否尝试过NDepend?
, Visual Studio的Architecture Explorer在这方面做得很好。有一个特定于命名空间的依赖图。
, nDepend可能是这项工作的最佳工具。
依赖关系矩阵视图将向您显示所有名称空间以及它们之间的关系。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。