FxCop

FxCop是一個代碼分析工具,它依照微軟.NET框架的設計規範對託管代碼assembly(可稱為程式集,assembly實際上指的就是.net中的.exe或者.dll檔案(不包括netmodule檔案)。

基本信息

程式簡介

這種檔案中包含四種信息:assembly的清單(包括引用外部的assembly、netmodule與資源檔案及包含在同一檔案中的assembly);類型描述信息,包括版本信息與類的描述等;MSIL微軟中間語言;資源(圖示等))進行檢查。它使用基於規則的引擎,來檢查出你代碼中不合規範的部分;你也可以定製自己的規則加入到這個引擎。這個工具微軟免費提供。最新版需要.NET 2.0支持;此外,也有一個較老的針對.NET1.1的版本。

新版技術

最新版FxCop使用一項叫做內窺(introspection,或稱內觀、內視)的技術,以窺探你的assembly內部,而前一個版本則使用映射(reflection,或稱反射)技術。這一點值得關注,因為使用上一個版本調試碰到問題你不得不停下來,對代碼作了任何更改之後都需要重新開始調試;而這些對於新版本都沒有必要了。

程式作用

大多數代碼分析工具掃描你的原始碼,但是FxCop直接對你編譯好的代碼處理。.NET的每個assembly都有其metadata(可稱為元數據,metadata是關於一個assembly中各元素的類型信息庫,它本身也存放在這個assembly中),它對assembly以及assembly內用到的所有類型進行描述。FxCop會使用這個metadata以獲知代碼內部的運行狀況。另外,它也對代碼編譯時生成的MSIL(Microsoft Intermediate Language,微軟中間語言)進行檢查。

通過對metadata和MSIL檢查的結合,FxCop可以得出大量信息,以此獲得對代碼執行時所作所為的理解。它把你的代碼和各條規則逐一比較檢查,在每一個實例中,當找到不符合規則的代碼時就生成一條訊息。

相關詞條

相關搜尋

熱門詞條

聯絡我們