2013-03-18 1 views
15

저는 C# 프로젝트에서 ReSharper를 사용하고 있으며 일반적으로 좋아합니다. 그러나 특정 리팩토링 작업을 수행 할 때 코드에 주석을 계속 추가합니다. 나는 "널 (null)에 대한 매개 변수를 확인"상황에 맞는 작업을 사용하는 경우 예를 들어ReSharper에서 주석 추가를 중지하십시오.

, 그것은 [NotNull] 추가 :

// Before context action 
public void Foo(object input) 
{ 
} 

// After context action 
public void Foo([NotNull] object input) 
{ 
    if (input == null) 
    { 
     throw new ArgumentNullException("input"); 
    } 
} 

추가를 ReSharper에서는 내가 JetBrains의 어셈블리를 참조하고 있지 않다하더라도, 파일에 using JetBrains.Annotations 추가 여기서 속성이 정의됩니다.

매우 유용한 문맥 동작을 계속 사용하고 싶지만 코드에 외부 주석을 추가 할 수는 없습니다. ReSharper는 기본 주석 네임 스페이스를 변경하고 주석 속성 소스 코드를 프로젝트에 복사하는 옵션을 제공하지만 이는이 프로젝트의 옵션도 아닙니다.

ReSharper가 주석 추가를 완전히 중단하도록하는 방법이 있습니까? JetBrains.Annotations를 코드 주석 속성이있는 네임 스페이스로 선택 취소하는 옵션을 시도했지만 주석이 처음 생성되었는지 여부에 영향을 미치지 않습니다.

업데이트 : 실제로 JetBrains.Annotations.dll를 참조하지 않은 동안, 나는 다른 DLL 참조 된 같은 주석이 같은 JetBrains.Annotations 네임 스페이스 속성을 재 구현. 해당 DLL 참조를 제거하면 ReSharper가 주석을 추가하지 못하게됩니다. 이 옵션을 해제 할 수있는 옵션이 여전히 있으면 좋겠지 만 해결 방법은이 상황에 맞습니다. 당신이 JetBrains.Annotations.dll, "널 (null)에 대한 매개 변수를 확인"에 대한 기본 액션을 참조하면

+1

NLog가 문제의 원인이되는 DLL입니다. ReSharper없이 살면 전혀 살 수 없으므로 주석을 루트 네임 스페이스에 추가하기 위해 제거 할 수 없습니다. –

+0

주석 사용법을 강력히 권합니다. –

답변

6

은 옵션 " 'NotNullAttribute'로 주석"추가에도 불구하고합니다 (NotNull 속성을 사용하는 것 같다.

내가 아는 유일한 해결 방법은 참조 할 수 있습니다 JetBrains.Annotations.dll

업데이트 :.

보기로보고,이 주석 DLL을 포함하고 "매개 변수를 확인하면 추가 할 수 [NotNull] 제안/버그가 있다고 보인다 null "이 요청되었습니다 : http://youtrack.jetbrains.com/issue/RSRP-70350 다른 사람이이 문제를두고 발생하는 경우 ...

+1

감사합니다! 나는 JetBrains.Annotations.dll을 참조하지 않았지만 같은 네임 스페이스의 모든 동일한 속성을 다시 정의한 다른 DLL을 참조하고있었습니다. 제거하면 ReSharper가 속성 추가를 중지합니다. –