Question

Does anybody know of a tool that I could use with a C# application to find possible Law of Demeter violations? I know that it would give a lot of false positives, but I think it could still be useful. Especially during the early design process.

Was it helpful?

Solution

If you're just looking for something.somethingelse.violation, then you can use Visual Studio.

In the find dialog, check the box at the bottom to "Use" and select "Regular Expressions."

Not very robust, but you can use <[:a_]+\.([:a_]+\.)+[:a_]+ to find the pattern above.

A better tool would be grep or similar on the solution directory, so you can use more powerful regex options like negative lookbehind, which would allow you to exclude things like using directives and namespace declarations.

grep for Windows

You could probably very quickly write a .NET app that would recurse a given directory and search .cs and/or .vb files for same, using .NET Regex, which has lookarounds, but of course the advantage of using VS is that you remain right in the source code editor.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top