Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对于特定方法,是否可以在依赖关系树的所有方法中独立输出代码?_C#_Ndepend - Fatal编程技术网

C# 对于特定方法,是否可以在依赖关系树的所有方法中独立输出代码?

C# 对于特定方法,是否可以在依赖关系树的所有方法中独立输出代码?,c#,ndepend,C#,Ndepend,我希望能够在我们的构建过程中集成这样一种能力,即在每次构建之后将对特定方法列表的任何依赖项所做的任何代码更改与之前的构建进行比较 因此,如果我有两个访问数据库的方法,我想知道在依赖关系树上调用这两个方法之一的任何方法是否有任何代码更改。这样的代码查询应该满足您的需要: // <Name>Methods that call Parse(String) or get_TestName() and that was added or where cpde was changed</N

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


因此,如果我有两个访问数据库的方法,我想知道在依赖关系树上调用这两个方法之一的任何方法是否有任何代码更改。

这样的代码查询应该满足您的需要:

// <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  }
//调用Parse(String)或get_TestName()并添加或更改cpde的方法
从m到方法
让depth0=m.DepthOfIsUsing(“NUnit.Core.RuntimeFramework.Parse(String)”)
让depth1=m.DepthOfIsUsing(“NUnit.Core.Test.get_TestName()”)
其中(深度0>=0 | |深度1>=0)
&&(m.CodeWasChanged()| | m.WasAdded())
orderby(depth0!=null?depth0:depth1)
选择新的{m,depth0,depth1}
当然,如果您愿意,可以使用前缀
warnif count>0
将其转换为规则

下面是正在运行的代码查询,下划线方法是自基线检查以来代码更改的方法,粗体方法是自基线检查以来添加的方法

您可以右键单击带下划线的方法以使用首选的差异工具

您也可以将结果导出到图形(按钮导出到图形),但是您可能会得到不相交的图形,因为将缺少未更改的方法:


谢谢,我会下载试用版,看看效果如何。