Demeter违法搜索工具的法则?

有没有人知道我可以使用C#应用程序查找可能的Demeter违规法的工具? 我知道这会产生很多误报,但我认为它仍然有用。 特别是在早期设计过程中。

如果您只是在寻找something.somethingelse.violation ,那么您可以使用Visual Studio。

在查找对话框中,选中底部的“使用”框,然后选择“正则表达式”。

不是很健壮,但你可以使用<[:a_]+\.([:a_]+\.)+[:a_]+来查找上面的模式。

一个更好的工具是解决方案目录中的grep或类似工具,因此您可以使用更强大的正则表达式选项,如负向lookbehind,这将允许您排除诸如using指令和namespace声明之类的内容。

grep for Windows

您可以非常快速地编写一个.NET应用程序,该应用程序将递归给定目录并使用具有外观的.NET Regex搜索.cs和/或.vb文件,但当然使用VS的优势在于您保留在源代码编辑器中。