O recurso de "resolução automática" do Visual Studio não funciona para métodos de extensão - e agora?
Eu amo o recurso "Resolver" no visual studio.
Cenário típico:
DigitarDebug
Tipo.
Observe que nenhum intellisense apareceClique com o botão direitoSelecione ResolverEscolherusing System.Diagnostics
ouSystem.Diagnostics.Debug
Lindo. Use isso o tempo todo.
Cenário do método de extensão:
Digitarvar maxNumber = new int[] {1, 2, 3, 4}
Tipo.
Observe que o intellisense traz métodos de array, mas nenhum método de extensão LINQDigite manualmenteMax()
Clique com o botão direitoMax()
Nenhuma resolução a ser encontradaClique com o botão direito emint[]
Ainda não há solução para ser encontradoA contragosto, vá até o topo da página e digiteusing System.Linq;
*
* supondo que você saiba de cor, caso contrário, destrua sua mente ou tente procurá-la
Ideia de implementação:
Se esse recurso fosse inventado, uma ideia seria para o primeiro item intellisense que aparece quando eu digito.
ler,<extension methods...>
, e se eu clicar nesse item, será exibida uma lista Resolver de todos os namespaces que contêm métodos de extensão para a classe em questão.
Algumas perguntas:
Este recurso está previsto para futuras edições do Visual Studio?Quais são as soluções alternativas / dicas para encontrar os métodos de extensão (e o namespace correspondente) que podem estar disponíveis para uma classe específica?