在c#代码中发现demeter违规法

时间:2013-07-06 03:16:55

标签: c# .net static-analysis law-of-demeter

我正在考虑构建一个工具,在c#代码中发现demeter违规法。显然,如果有一些替代方案,我不想重新发明轮子并构建另一个工具,但我没有幸运地专门为c#代码搜索这样的工具。

关于同一问题的堆栈溢出(here)还有另一个主题,但我认为建议的解决方案(例如使用正则表达式来发现LoD违规)只会捕获简单的违规行为。例如,请考虑以下代码(并假设person对象已存在):

Wallet wallet = person.Wallet;
DriversLicense license = wallet.DriversLicense;

这显然是一个LoD违规(与DriversLicense license = person.Wallet.DriversLicense相同),但更难检测。

我找到了一些关于如何在c#herehere中检查demeter违规法律的线索,但没有针对特定工具的答案。

您是否知道任何能够发现以前在c#代码中出现的LoD违规行为的工具?

0 个答案:

没有答案