2012-05-21 4 views
0

저는 ASP.NET 프로젝트에서 작업하고 있습니다. 물론 투영 된 Global.asax 파일이 있습니다. Global.asax.cs 파일의 내부, 그것은 [Application_Start을 제외하고는] 정말 비어 있지 않은 다음 방법, 각각 포함되어 있지만 실제 구현에 대한 필요 :Global.asax - FxCop 경고 충돌 CA1810 대 CA2109

protected void Application_Start(object sender, EventArgs e){ } 
protected void Session_Start(object sender, EventArgs e){ } 
protected void Session_End(object sender, EventArgs e){ } 
protected void Application_Error(object sender, EventArgs e){ } 

나는 천천히 없다 Visual Studio 2008이 제공해야하는 FxCop 규칙을 각각 활성화하고 최근에는 위의 방법과 관련된 충돌이 발생했습니다. 첫 번째 오류는 CA2109

CA2109 : Microsoft.Security : Consider making 'Global.Application_Error(object, EventArgs)' not externally visible. 

입니다.이 오류는 각 방법에 대해 표시됩니다. 수동으로 이러한 메서드 중 하나를 호출하지 않기 때문에 각 메서드를 private으로 만들어이 경고를 제거 할 수 있습니다. 그렇게하고 코드 분석을 다시 실행 한 후, 나는 오류 CA1811가 나타날 수

CA1811 : Microsoft.Performance : 'Global.Application_Error(object, EventArgs)' appears to have no upstream public or protected callers. 

스택 오버플로 지역 사회의 세계에서 거기에 당신의 모든 내 질문은 이것이다 : 나는 어떤 경고와 귀를 기울여야 어떤 경고 억제해야합니까? 두 가지 경고를 모두 만족시킬 수있는 방법이 있습니까?

보안 트럼프를 모두 가정하므로 CA2109를 듣고 CA1811을 억제해야합니까?

답변

0

CA1811은 실제로 "호출되지 않은 개인 코드 사용 안함"입니다. 이것은 명백한 이벤트 바인딩이 없으므로 FXCop이 호출되지 않는다고 생각하는 것을 의미합니다. Auto Event Wire Up을 사용하면이 규칙을 &이라고 할 수 있습니다. 그렇지 않으면 동일한 효과가있는 이벤트를 명시 적으로 처리 할 수 ​​있습니다.

"CA2109 : 보이는 이벤트 처리기 검토"는 같은 것을 말합니다. 그들은 이벤트 핸들러라는 것을 알고 있지만 왜 수업 외부에서 볼 수 있어야합니까?

규칙은 실제로 모순되지 않으며, 그들이 당신에게 제안하는 것을 분명히하지 않습니다.