Individuazione di tutti i metodi che gestiscono gli eventi dei moduli tramite NDepend
-
08-07-2019 - |
Domanda
Mi chiedevo se qualcuno sarebbe stato in grado di aiutarmi a scrivere una query CQL per NDepend che mi mostrasse tutti i metodi nella mia classe di modulo che gestiscono gli eventi del modulo. Quindi vorrei essere in grado di trovare tutti i metodi che assomigliano a questo:
Private Sub AddFolderButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddFolderButton.Click
Ho dato un'occhiata ad alcune delle opzioni ma non riesco davvero a trovare nulla che faccia ciò di cui ho bisogno.
Ho appena iniziato a usare NDepend, quindi non mi sono ancora abituato, ma so una cosa come diavolo ho vissuto senza tutto questo tempo.
Soluzione
Sono Patrick del team NDepend e confermo, finora utilizzare una condizione "Namelike + espressione regolare" su "nome metodo + firma" è il modo migliore per ottenere ciò che si desidera con CQL.
Altri suggerimenti
Ho ottenuto qualcosa che funziona ma non è proprio corretto al 100%, perché tutti i gestori di eventi generati dal modulo hanno un carattere di sottolineatura in quel nome, ho usato il carattere di sottolineatura come filtro, ho anche filtrato dove il nome ha " EventArgs " dentro. La query è simile alla seguente:
SELECT METHODS WHERE NameLike "_" OR NameLike "EventArgs" AND !IsSpecialName AND IsPrivate
Quella query restituisce praticamente tutti i metodi che gestiscono gli eventi, ma vorrei comunque trovare un modo più corretto.