2014-07-09 4 views
1

nDepend API를 사용하면 다음과 같은 것이 가능합니까?nDepend를 사용한 직접 인스턴스화

우리의 객체 팩토리가 무시되고 구체적인 클래스가 직접 인스턴스화되는 경우를 경계하고 싶습니다.

은 분명히 내가 좋아하는 것들 필터링 할 수 있어야합니다 것입니다 : 확인하려면, 또는 네임 스페이스를 제외 할 경우 절 유형 이름에 추가하여 아마도

StringBuilder stringBuilder = new StringBuilder(); 

을,하지만 난 있는지 확인하려면 우리는 다음을 참조하십시오

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

아니라이 :

MyCustomType item = new MyCustomType(); 

감사합니다.

답변

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) } 
+0

이 내가 필요로하는 단지 것입니다; 샘플 코드 주셔서 감사합니다. 슬프게도, 나는 당신의 답을 아직 업 그레 이드 할 명성이 없습니다. 나는 그래도. –

관련 문제