我正在嘗試創建一個自定義fxcop規則,該規則檢查目標程序集中的所有方法,其名稱不以CAPITAL字母開頭。我在這方面非常成功,但有一個問題。 該規則也引發「委託方法」的錯誤,例如。 btnOk_Click我不想要的是,有什麼方法可以使用任何預定義的屬性/方法來識別/過濾fxcop中的委託方法嗎?如何識別fxcop中的方法
1
A
回答
1
一個想法是通過工具NDepend來編寫自定義代碼規則,而不是(聲明:我是該工具的開發人員之一)。
NDepend特別設想通過LINQ查詢來製作簡單的自定義代碼規則版本。下面Code Query LINQ(CQLinq)查詢涉及您的需要:
// <Name>Method name MUST start with CAPITAL</Name>
warnif count > 0
from m in Application.Assemblies.WithName("TargetAssemblyName").ChildMethods()
where
!m.IsSpecialName && // Remove getter and setter
!m.IsGeneratedByCompiler && // Discard methods generated by compiler
!m.ParentType.IsDelegate &&
!m.NameLike("^btn") && // Use regex here to discard btnOk_Click like method
!char.IsUpper(m.SimpleName[0])
select m
只要寫在VS NDepend的查詢編輯器這個編碼規則,並得到即時的反饋:
NDepend的編碼規則可以executed/validated live in VS,或者可以在構建過程時間和validated in a report處執行。
+0
謝謝帕特里克我喜歡這一點,但截至目前,客戶端沒有這個工具,所以我只用fxcop定製。也有幾種方法來識別控件的數據類型,所以我可以看到,如果這是正常的方法或委託... – user698532
+0
歡迎您:)很高興你喜歡這個解決方案! –
相關問題
- 1. 方法未識別
- 2. 如何識別構造方法?
- 3. 如何識別JavaScript方法(函數)
- 4. irb無法識別方法
- 5. xmpp中無法識別登錄方法
- 6. OCMStub中未識別的方法`返回'
- 7. 識別xcode中長方法的結束
- 8. OpenCV中的物體識別方法
- 9. java中未識別錯誤的方法
- 10. 如何識別System.Reflection中的匿名方法
- 11. 如何識別Java字節碼中的覆蓋方法?
- 12. 如何識別__getattr__中的方法和屬性
- 13. 如何識別控制器操作方法中使用的Actionfilter?
- 14. 如何在javascript中識別對象的方法和屬性
- 15. 如何識別綁定方法中的源按鈕?
- 16. 我應該如何識別TraceSource.TraceEvent方法中的id參數?
- 17. postdelayed方法不識別
- 18. getSystemService()方法不被識別
- 19. Android:語音識別方法
- 20. Linq不識別方法GetDistanceTo
- 21. Android Studio不識別方法
- 22. 問題與識別方法
- 23. Android Studio無法識別的Mapbox方法
- 24. 表達 - 無法識別的方法
- 25. 簡單的方法來識別/識別一個手勢
- 26. 從方言SQL語法中識別DBMS?
- 27. |在java中沒有識別string.split()方法
- 28. 如何直方圖的識別
- 29. 如何識別哪個片段在onMapReady方法中被點擊
- 30. 如何識別或知道方法中引用哪個控件?
您的意思是您創建代表的常規方法 – SLaks
@SLaks:簡單來說,我們爲任何事件註冊的方法,如按鈕點擊事件,我們有一個btnOk_Click方法,這些也被當作Fxcop中的方法,當我們將成員轉換爲方法內部檢查方法 – user698532
FxCop用於靜態分析(檢測不可達代碼等),而您要執行的操作是強制執行編碼標準。該工具是StyleCop http://stylecop.codeplex.com/。我給你的建議是將其與ReSharper一起安裝(這將對你和你的團隊完全執行一個優秀的編碼標準),然後停止談論編碼標準的時間:) – briantyler