2012-08-13 2 views
-2

때때로 컴파일러가 컴파일 타임과 런타임 모두에서 명확하게 지적하지 못하는 .NET 프레임 워크에서 성가신 버그가 발생합니다. This for example.컴파일러 오류를 생성하는 C# 코드 분석 규칙 만들기

그것은 당신이 Global.asax.cs에서 Application_StartMvcApplication.BeginRequest 수동으로 연결할 경우, 당신은 System.Web.HttpRuntime.ProcessRequestNotificationPrivate에서 NullReferenceException를 얻을 수 있습니다 상태.

오류를 원인과 관련 지을 수있는 명확한 방법이 없으므로 MvcApplication.BeginRequest 이벤트를 MvcApplication.Application_Start에서 연결하면 컴파일 시간 오류가 발생하여 사용자가 다음을 수행하도록 할 수 있습니다. 그것을 제거하고 이유를 설명하십시오.

답변

0

사용자 정의 FxCop 규칙을 구현할 수 있습니다. 사용자 정의 FxCop 규칙은 코드 분석 규칙 집합에 해당 규칙을 포함시켜 처리기가 연결되어 있는지 확인합니다. CA2001 규칙을 확인하십시오. 달성하고자하는 것과 유사한 것을 수행합니다.

사용자 지정 FxCop 규칙을 구현하는 방법에 대한 내용은 http://www.binarycoder.net/fxcop/index.html을 참조하십시오.

+0

MS가 이것을 CA2001 규칙으로 컴파일러에 추가하면 정말 좋겠지 만 여기서는 직접 작성할 수있는 가능성이 없습니다. 나는 FxCop을 들여다 볼 수 있지만이 특별한 경우는 가능하다고 확신합니까? 정의하기가 상당히 어려울 것 같습니까? 유사한 작업을 수행하는 FxCop 규칙에 대한 모든 포인터는 감가 상각됩니다 (검색을 시도했지만 그러한 규칙을 찾을 수 없습니다). – NKCSS

+0

간단한 FxCop 규칙 만 작성했지만 가능해야한다고 생각합니다. 많은 표준 규칙은 매우 복잡합니다 (IDisposable이 올바르게 구현되었는지 확인하는 것과 같이). 기본 규칙 어셈블리에서 디 컴파일러를 사용해보십시오. 이렇게하면 규칙을 구현하는 방법에 대한 아이디어를 얻을 수 있습니다. –