使用nDepend API,可能会出现以下内容吗?
我想留意我们的对象工厂被绕过的实例,并且直接实例化具体类。
显然,我需要能够过滤掉以下内容:
StringBuilder stringBuilder = new StringBuilder();
可能通过添加要排除的Where子句类型名称或要检查的名称空间,但我想确保看到:
IMyCustomType item = ObjectFactory.Get<IMyCustomType>();
而不是这个:
MyCustomType item = new MyCustomType();
感谢。
答案 0 :(得分:1)
下面这样的代码规则可能对你有所帮助,希望它可以理解,不必发表评论:
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 ) }