NDepend技术问询:如何限定JustMyCode为指定方法集?是否影响其他查询?
关于NDepend中JustMyCode范围定义的问题
官方文档介绍了如何使用notmycode通过排除法限制JustMyCode,示例代码如下:
notmycode from m in Methods where m.SourceFileDeclAvailable && m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs") select m
我希望将JustMyCode仅限定为以下查询返回的方法:
from m in Methods let depth0 = m.DepthOfIsUsedBy("InsertMuk(Int32,Int32,BetCoupon,Boolean,Boolean,Boolean,DateTime&,Boolean)") where depth0 >= 0 orderby depth0 select new { m, depth0 }
请问这样操作会重新定义所有其他查询的代码库吗?
是的,这种操作会重新定义所有其他查询的代码库范围。
在NDepend中,JustMyCode是全局生效的过滤规则,当你通过自定义查询限定其范围后,所有后续的CQLinq查询都会自动使用这个过滤后的代码集合。
要实现“仅保留指定方法为JustMyCode”的需求,你需要先将所有代码标记为notmycode,再把目标方法纳入mycode(即移除notmycode标记),示例代码如下:
// 第一步:将所有方法标记为非我的代码 notmycode from m in Methods select m // 第二步:将目标方法纳入我的代码范围 mycode from m in Methods let depth0 = m.DepthOfIsUsedBy("InsertMuk(Int32,Int32,BetCoupon,Boolean,Boolean,Boolean,DateTime&,Boolean)") where depth0 >= 0 select m
完成上述设置后,所有其他查询都会仅包含你指定的这些方法,等同于全局重新定义了代码库的有效范围。
内容的提问来源于stack exchange,提问作者Revious
相关产品推荐
相关产品推荐

