>

using 에서 코드를 래핑하는 것을 잊었을 때 경고를 발생시키는 Resharper 4 (또는 Visual Studio 자체의 설정)가 있습니까?   finally 에서 적절한 Dispose 호출을 차단 또는 생략  차단 하시겠습니까?


  • 답변 # 1

    정확한 자동 처분 분석에는 글로벌 방식으로 DFA (Data Flow Analysis)가 필요합니다. IDisposable 객체를 작성하고 메소드를 호출하지 않으며 인수로 전달하지 않습니다. 일회용 객체가 다른 메소드로 전달되는 경우 ( "이"가 암시 적으로 전달 된 경우 멤버 호출 포함) 도구는 Dispose가 호출되지 않았는지 또는 나중에 폐기 할 수 있도록 해당 객체가 어딘가에 저장되어 있지 않은지 분석해야합니다.

    즉, 일회용 객체가 실제로 "사용"구문이나 다른 방식으로 처리되는지 확인하는 순진한 구현은 너무 많은 오 탐지를 생성하고 분석에 쓸모가 없게 만듭니다.

  • 답변 # 2

    현재 불만 방법, 나는 내 자신의 눈 Disposable을 만들었습니다. IL 인스트루먼트이므로 정적 분석에 의해 포착되지 않은 많은 누출을 포착해야합니다. 아직 초기 단계에 있으며, inpuits는 환영합니다.

  • 답변 # 3

    코드를 스캔하고 코드 분석을 업데이트하여 코드 편집기를 업데이트하는 코드 편집기 내에서 실행할 수있는 R #에 작은 추가 기능을 설계 할 수 있습니다 방금 설명한 구조를 놓친 개체입니다.

    경로를 가기로 결정한 경우 R # 플러그인 아키텍처를 살펴 보겠습니다.

  • 답변 # 4

    Dispose() 테스트를위한 몇 가지 요령은이 블로그 게시물을 참조하십시오.  와이즈 비즈 . 기본적으로, 폐기되었다고 주장하는 DEBUG 전용 소멸자를 작성하십시오.

  • 답변 # 5

    FXCop을보고 싶을 수도 있습니다. http://msdn.microsoft.com/en-us/library/ms182328 (VS.80) .aspx

    클래스 및/또는 변수의 필드에 대한 경고 만 생성하더라도 유감 R #은이를 처리하지 않습니다.

    DEBUG

  • 이전 gdb 스크립팅 - 선택된 중단 점에서 명령 실행
  • 다음 bit shift - C에서 64 비트 변수 선언