Verificando se métodos públicos estão sendo utilizados com Call Hierarchy
Algumas semanas atrás estávamos trabalhando com o Code Analysis validando os métodos da aplicação que não estão sendo utilizados e percebemos que o mesmo apenas sinaliza os métodos privados. Isto gerou um problema pois como iremos remover da aplicação os métodos públicos que não estão sendo utilizados?
A estratégia foi (olha a gambi!!)…
Comente o método público e compile, se der erro, o mesmo esta sendo utilizado em algum ponto. Esse método funciona muito bem, mas o esforço é alto. Então mais uma vez vem o Visual Studio 2010 e suas features para nos ajudar.
O Call Hierarchy consegue identificar dentro da sua Solution todos os pontos da aplicação que estão se referenciando o seu método ou propriedade.
Segue abaixo como utilizar:
Clique com o botão da direita do mouse em cima do nome do método a ser analisado e clique em View Call Hierarchy (ou CTRL+K, CTRL+T)
A janela do Call Hierarchy ira abrir e dentro dela você encontrará o seu método como nó raiz seguido por uma pasta chamada Calls To… , que mostra todas as chamadas ao seu método, e a pasta Calls From…, que lista todas as chamadas que seu método faz.
Esta janela é muito interessando, porque você ainda pode filtrar a pesquisa por Solution, Projects e Document, pode atualizar a pesquisa e limpar os resultados, e acessar diretamente a referencia apenas dando um duplo click em cima dos métodos. Na janela da direita você visualiza em qual arquivo e linha as chamadas estão sendo feitas.
Um outro recurso muito útil é possibilidade de promover uma chamada encontrada para o nó raiz da pesquisa, clicando com botão direito do mouse em cima da referencia encontrada e clicando em Add As New Root.
O Call Hierarchy é um recurso muito útil para um Code Review, foi uma ótima idéia inventarem isso.
Espero que tenham gostado do artigo.
Francisco Gonçalves
O View Call Hierarchy apenas não funciona nos casos em que ele é chamado por uma thread .. Ex: thread t = new thread(Metodo);
ou nos casos de delegate.
Não sendo localizacao.