2012-01-03 2 views
1

코드에 NotImplementedException이 남아있을 때 사용할 수있는 규칙이 있음을 알고 있습니다 (릴리스 빌드에서 이해할 수 있음) (this answer 또는 this question 참조). 코드 분석을 사용하십시오. 은 완료되지 않은 것으로 알려져 있으므로 NoImplementedException을 throw하는 메서드를 무시합니다.코드 분석에서 NotImplementedException을 throw하는 메서드를 무시하십시오.

배경 :
코드 블록을 만들면 완전히 완료되기 전에 내가 가지고있는 것을 테스트하고 싶습니다. 또한 CA를 켜기를 원하기 때문에 오류를 일찍 수정할 수 있습니다 (예 : 자원을 적절하게 처리하지 않음). 하지만 내가이 코드를 개발하는 데 어려움을 겪고 있기 때문에 테스트에서 사용하지 않을 스텁이 여전히 있습니다. 이러한 스텁의 본문은 일반적으로 throw new NotImplementedException();으로 구성됩니다.

코드를 작성할 때 CA는 메소드가 '정적'일 수 있으며 매개 변수가 사용되지 않는다고 불평합니다. 내가 CA 오류를 억제 할 수 있다는 것을 알았지 만, 그 방법들이 만들어 질 때 그 억압을 꺼내야한다는 것을 기억해야한다는 것을 의미합니다. 추가 빌드 (하나는 메시지를 가져 와서 그들을 억압 할 수 있고 실제로는 암호).

내 질문 :
(적어도) 코드 경로 중 하나를 따라 NotImplementedException으로 끝나는 CA 무시 방법을 사용할 수 있습니까? 디버그 모드에서만 작동하도록 설정할 수 있다면 좋을 것이므로 릴리스 빌드에서 해당 예외에 대한 경고를 얻을 수 있습니다.

기록을 위해 VS2010을 사용하고 있습니다.

답변

1

아니요. 코드 분석에는 이러한 옵션이 없습니다.

할 수있는 작업은 NotImplementedException을 던지기 위해 플래그를 지정하고 코드 분석 결과를 처리하고 NotImplemented 사용자 지정 규칙과 동일한 대상 메서드를 가진 항목을 제거하는 사용자 지정 규칙을 작성하는 것입니다. 이 규칙은 구현하기가 아주 간단해야합니다. 아마도 NotImplementedException 클래스에서 생성자 호출을 검색하는 것으로 충분할 것입니다.

그러나 이것은 명령 줄에서 코드 분석을 실행 한 다음 xml 파일을 사후 처리하는 경우에만 작동합니다.

GeneratedCodeAttribute을 사용하여 메소드를 표시 할 수도 있습니다. 기본값은 무시됩니다.

+0

예, 일부 옵션을 찾지 못해 일부 플러그인이나 다른 것을 기대하고있었습니다. 커맨드 라인에서의 사용법은 내가 한 후에는 아닙니다. (Ctrl-) F5를 누르면 작동합니다. 의 구문을 기억할 수있는 단일 속성은 일시적인 해결책 일 수 있습니다. 감사합니다. –