CQLinq 代码可以在多个查询中重用吗?
Can CQLinq code be reused in multiple queries?
假设我正在分析一个包含大量控件的解决方案,例如
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 列表中,您可以在这里投票:
一旦可用,我们将更新此答案,希望是在 2017 年的某个时候。
顺便说一句,这种想法已经可以通过 notmycode JustMyCode feature 获得,但您只能定义和重用 JustMyCode
集。
假设我正在分析一个包含大量控件的解决方案,例如
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 列表中,您可以在这里投票:
一旦可用,我们将更新此答案,希望是在 2017 年的某个时候。
顺便说一句,这种想法已经可以通过 notmycode JustMyCode feature 获得,但您只能定义和重用 JustMyCode
集。