5

나는이 유창 확장 유효성 검사 도우미와 같은 :억제 CA1062

Assert.That(aParameter).IsNotNull(); 

그 방법은 (< 그 T >) 실제로 일반과 일반 IAssertCondition를 반환하는 암시 적 입력을 사용하기 때문에 그것은 확장 가능 <T> 개체입니다. IsNotNull은 실제로 확장 메서드입니다.

어쨌든이 접근법을 사용하여 매개 변수의 유효성을 검사 할 때 문제가되는 것은 매개 변수를 사용하기 전에 CA1062 경고를 통해 해당 매개 변수의 유효성을 검사하도록하는 것입니다.

ValidatedNotNullAttribute를 사용하여 FxCop에 인수의 유효성을 알리는 방법에 대해 Eric Smith의 게시물 (here)을 읽었지 만 설명 된 유창한 인터페이스를 사용하여이를 수행 할 수있는 방법을 알 수 없습니다.

코드 분석에서 위의 내용이 요구 사항을 충족하고 경고가 나타나지 않는다는 것을 인식 할 수있는 옵션은 무엇입니까?

답변

4

이 경우에 특성을 추가 할 수있는 유일한 위치는 That<T> 메서드의 매개 변수에 있습니다. 불행하게도 CA1062가 발사되는 것을 막을 수는 있지만 실제로는 "not null"검증을 구현하기 위해 That<T> 이상을 호출해야하기 때문에 거짓 음이 생길 수 있습니다. 코드 분석을 사용하여 유효성 검사 도우미를 인식하는 방식으로 매개 변수 유효성 검사를 제대로 확인하려면 CA1062를 대체 할 자체 규칙을 작성해야합니다.

+0

관련 규칙을 볼 수 있도록 내 규칙을 작성하는 방법을 설명하는 자료를 가르쳐 주시겠습니까? 고마워! – SonOfPirate

+0

공식 규칙 작성 SDK가 없습니다. 가장 완벽한 단일 리소스는 http://binarycoder.net/fxcop/index.html입니다. –

+0

우수하다, 나는 그것을 줄 것이다. – SonOfPirate