c# - NDepend 能否将所有方法中的代码输出到特定方法的依赖树中?

标签 c# ndepend

我希望能够将在每次构建后与之前构建后对特定方法列表的任何依赖项所做的任何代码更改进行比较的能力集成到我们的构建过程中。

因此,如果我有两个访问数据库的方法,我希望能够判断调用这两个方法中的任何一个的方法是否有任何代码更改,一直到依赖树。

最佳答案

这样的代码查询应该可以满足您的需求:

// <Name>Methods that call Parse(String) or get_TestName() and that was added or where cpde was changed</Name>
from m in Methods 
let depth0 = m.DepthOfIsUsing("NUnit.Core.RuntimeFramework.Parse(String)")
let depth1 = m.DepthOfIsUsing("NUnit.Core.Test.get_TestName()")
where (depth0  >= 0 || depth1 >= 0)
   && (m.CodeWasChanged() || m.WasAdded())

orderby (depth0 != null ? depth0 : depth1)
select new { m, depth0, depth1  }

当然,如果您愿意,可以使用前缀 warnif count > 0 将其转换为规则。

下面是这个代码查询,下划线方法是代码自基线以来更改的方法,粗体是自基线以来添加的方法。

NDepend calls in dependency tree diff methods

您可以右键单击带下划线的方法到ask to see diff in source code使用您首选的差异工具。

您还可以将结果导出到图表(按钮导出到图表),但这样您可能会得到不相交的图表,因为未更改的方法将丢失:

enter image description here

关于c# - NDepend 能否将所有方法中的代码输出到特定方法的依赖树中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31818487/

相关文章:

c# - 如何使用 NDepend 查看代码指标 lke Fan-In/Fan-Out

c# - ASP.NET Web API 2重写继承属性路由操作发现多个操作

c# - 无法读取超过流的末尾

.net - 如何创建自定义 NDepend 规则来检查 DI 注册

c# - 使用 NDepend 查找方法的所有使用(包括通过接口(interface))

c# - 为什么 async 关键字在编译时会生成一个枚举器和附加结构?

c# - Visual Studio 设计器中的抽象通用 UserControl 继承

c# - .Net 在两个 Web 服务之间共享 dll

c# - 将 LINQ 对象列表导出到 Excel 文件

ndepend - NDepend 如何计算委托(delegate)的参数数量?