C#コードでデメテル違反の法則を発見するツールを構築することを考えています。明らかに、車輪を再発明して別のツールを構築したくはありませんが、代替ツールが利用可能である場合、特に c# コード用のツールを検索することはできませんでした。
同じ問題に関するスタック オーバーフロー (ここ) に関する別のトピックがありますが、提案された解決策 (たとえば、正規表現を使用して LoD 違反を発見する) は単純な違反のみをキャッチすると思います。たとえば、次のコードを考えてみましょう (そして person オブジェクトが既に存在するとします):
Wallet wallet = person.Wallet;
DriversLicense license = wallet.DriversLicense;
これは明らかに LoD 違反 ( と同じDriversLicense license = person.Wallet.DriversLicense
) ですが、検出が困難です。
c# でデメテル違反の法則を確認する方法に関するスレッドをいくつか見つけましたが、特定のツールに対する回答はありません。
以前に C# コードで示された種類の LoD 違反を検出できるツールを知っていますか?