有時,我在.NET框架中遇到了惱人的錯誤,編譯器無法在編譯時和運行時清楚地指出這些錯誤。 This for example。創建生成編譯器錯誤的C#代碼分析規則
中說,如果你的MvcApplication.BeginRequest
手動Application_Start
從的Global.asax.cs線了,你會得到一個System.Web.HttpRuntime.ProcessRequestNotificationPrivate
NullReferenceException
。
由於沒有明確的方法將錯誤與原因聯繫起來,所以能夠寫出一些說明如果從MvcApplication.Application_Start
連接事件MvcApplication.BeginRequest
來拋出編譯時錯誤,迫使您刪除它並解釋原因。
如果MS會將此作爲CA2001規則添加到編譯器中,那將是非常棒的,但是我並沒有看到在這裏寫入自己的可用性。我可以看看FxCop,但你確定這個具體情況是可能的嗎?這似乎是一件很難定義的事情?任何指向類似FxCop規則的指針都會被預先考慮(嘗試搜索,但無法找到這樣的規則)。 – NKCSS 2012-08-13 11:32:40
我只寫了簡單的FxCop規則,但我認爲它應該是可能的。許多標準規則非常複雜(例如檢查IDisposable是否正確實施)。嘗試在默認規則程序集上使用反編譯器。這應該給你一些想法如何實施你的規則。 – 2012-08-13 19:47:32