假设我正在分析一个包含大量控件的解决方案,例如
public class FooControl : IControlBase
{
public void EvilMethod1()
{
// does some warning-level evil here
}
public void EvilMethod2()
{
// does some critical-level evil here
}
}
我想写两个CQLinq查询,在两个单独的查询中报告所有具有邪恶代码(如EvilMethod1)和使用真正邪恶代码(例如EvilMethod2)的类。
为了找到这个查询应该分析的所有类型,我将编写诸如之类的代码
let Controls = from t in Types
where t.NameLike("Control")
&& t.Implement(@"myNamespace.IControlBase")
select t
from c in Controls
... // actual query goes here
这两个查询显然都会使用此代码。是否有方法在两个查询中引用此代码,或者我是否被迫复制它?
现在您需要复制逻辑,但是这个功能在我们的TODO列表中,您可以在这里投票支持它:
https://ndepend.uservoice.com/forums/226344-ndepend-user-voice/suggestions/9752604-let-queries-pull-data-from-other-queries
一旦有答案,我们将更新,希望在2017年的某个时候。
顺便说一句,这种想法已经可以通过notmycode JustMyCode功能获得,但您只能定义和重用JustMyCode
集。