我对 NDepend 有一点问题没有忽略生成的代码。它解决了在创建实体数据模型时由 EF 生成的 Designer.cs 文件中参数过多的方法的问题。该类使用“自动生成”注释进行注释,但仍被 NDepend 拾取。
我似乎无法找到如何强制 *.designer.cs 被忽略,甚至无法忽略没有通配符的特定文件。我最接近的是几年前的这篇文章,帕特里克提到了这样做的计划,但仅此而已。
我错过了什么吗?有没有一种简单的方法可以排除这种情况?
我对 NDepend 有一点问题没有忽略生成的代码。它解决了在创建实体数据模型时由 EF 生成的 Designer.cs 文件中参数过多的方法的问题。该类使用“自动生成”注释进行注释,但仍被 NDepend 拾取。
我似乎无法找到如何强制 *.designer.cs 被忽略,甚至无法忽略没有通配符的特定文件。我最接近的是几年前的这篇文章,帕特里克提到了这样做的计划,但仅此而已。
我错过了什么吗?有没有一种简单的方法可以排除这种情况?
Code Query and Rule over LINQ (CQLinq)确实提供了一种忽略生成代码的工具。
有一个方便的预定义域,名为JustMyCode,类型为ICodeBaseView。
域JustMyCode表示 CQLinq 的一种工具,用于从 CQLinq 查询结果中消除生成的代码元素。例如,以下查询将仅匹配不是由工具(如 UI 设计器)生成的大型方法:
from m in JustMyCode.Methods where m.NbLinesOfCode > 30 select m
生成的代码元素集由以 CQLinq 关键字notmycode为前缀的 CQLinq 查询定义。例如,下面的查询匹配源文件中定义的方法,其名称以".designer.cs" 结尾:
notmycode from m in Methods where
m.SourceFileDeclAvailable &&
m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs")
select m
CQLinq 查询运行器在依赖 JustMyCode 的查询之前执行所有notmycode查询,因此域JustMyCode被定义一次。显然,如果notmycode查询依赖于JustMyCode域,CQLinq 编译器会发出错误。
有 4 个默认的notmycode查询,可轻松适应您的需要。您还可以创建其他notmycode查询: