用nDepend检测直接实例化

  • 本文关键字:实例化 nDepend ndepend
  • 更新时间 :
  • 英文 :


使用nDepend API,是否可能实现以下内容?

我想保持一个监视的实例,我们的对象工厂已经被绕过,一个具体的类被直接实例化。

显然,我需要能够过滤掉这样的内容:

StringBuilder stringBuilder = new StringBuilder();

可以通过在Where子句中添加要排除的类型名称或要检查的名称空间,但我想确保我们看到:

IMyCustomType item = ObjectFactory.Get<IMyCustomType>();

而不是this:

MyCustomType item = new MyCustomType();

谢谢。

也许下面的代码规则可以帮助你,希望它足够容易理解,不需要注释:

warnif count > 0
let ctors = Application.Namespaces.WithNameLike("Namespaces1*").ChildMethods().Where(m => m.IsConstructor)
let codeThatMustNotCallCtors = Application.Namespaces.WithNameLike("Namespaces2*").ChildMethods()
from m in codeThatMustNotCallCtors.UsingAny(ctors)
select new { m, ctorsCalled = m.MethodsCalled.Intersect(ctors ) }

相关内容

  • 没有找到相关文章

最新更新