2017-02-24 4 views
4

그래서 내 코드 주위에 Debug.Assert이 있었지만 이제는 DebugHelper.Assert을 만들었습니다. 자체적으로 일부 로깅과 Debug.Assert이 있지만 지금은 1 백만 건의 경고가 발생하여 null이 될 수 있습니다.null 참조 경고를 피하기 위해 Debug.Assert에 래퍼를 사용하고 있음을 ReSharper에게 어떻게 알릴 수 있습니까?

DebugHelper.AssertDebug.Assert과 같으므로 ReSharper에게 경고를 없앨 수 있습니까?

편집 : 나는이 프로젝트를 위해 다른 의존성을 추가하는 것을 피하고 싶다.

+0

http://stackoverflow.com/questions/8854701/disable-all-resharper-warnings-with-a-comment –

+2

@NikhilAgrawal 단순히 모든 경고를 비활성화합니다. 여기서 묻는 메시지가 아닙니다. – Rob

+0

@Rob : 알아요,하지만 이 선들에 대해 생각할 무언가. OP에게 미리 구운 대답을하는 대신, 나는 Resharper에 이런 '친절한'기능이 있음을 알리고이 라인에 대해 생각하도록 지시했다. 나는 그가 원하는 정확한 대답에 대한 링크를 가지고있다. 그러나 왜 남자에게 물고기를 주어야합니까? –

답변

3

DebugHelper.Assert 메서드에 특성을 추가하려고합니다. 당신은 당신의 프로젝트에 JetBrains.Annotations 패키지를 참조하고, 같은 계약의 주장을 추가 할 수 있습니다

[ContractAnnotation("condition:false => halt")] 
public void Assert(bool condition) 
{ 
    // ... 
} 

이것은 condition 매개 변수가 false 인 경우, 메소드가 중단됩니다 ReSharper에서 알을. 이것은 ReSharper가 표준 Debug.Assert 메소드에 주석을다는 방법입니다 (코드의 인라인 대신 xml 파일의 "외부"주석을 사용 함에도 불구하고).

또한 JetBrains.Annotations 패키지를 개발 시간 종속성으로 표시 할 수 있습니다. 속성은 조건부이며 기본적으로 결과 바이너리로 컴파일되지 않습니다. this blog post에서 자세한 내용.

+1

이것은 좋은 해결책입니다. 그러나 나는 Jetbrains의 라이브러리 (심지어 개발 의존성)에 의존하는 것을 팔지 않았습니다. resharper 설정 파일에서도 같은 일을 할 수 있는지 알고 계십니까?'Debug.Assert' 주석을 달고있는 것과 비슷합니다. – Rob

+0

+1 to @Rob. 나는 의존성을 추가하는 것에 대한이 아이디어를 정말로 좋아하지 않으며 추가 승인이 필요할 수도있는 회사 정책 때문에 개발자 종속성으로 사용할지 여부를 확신 할 수 없습니다. 나는 이것을 더하고 싶지 않다. – ditoslav

+0

어떻게 든 이것을 사용할 수 있을까? https://www.jetbrains.com/help/resharper/2016.3/Code_Analysis__External_Annotations.html? 편집 : 나를 좋아하지 않는 것처럼 보입니다. 이것들은 같은 프로젝트에 다시 적용될 수없는 것 같습니다. – ditoslav