DA0012: volume significativo de reflexão
Identificação da Regra |
DA0012 |
Categoria |
uso do .NET Framework |
Analisando métodos |
Preparação de exemplos |
Message (Mensagem) |
Você pode usar a reflexão excessivamente.É uma operação cara. |
Tipo de regra |
Aviso |
Causa
Chama os métodos de System.Reflection como InvokeMember e GetMember ou métodos de tipo como MemberInvoke é uma proporção significativa de dados de perfil.Quando possível, considere substituir esses métodos com associação inicial dos métodos de assemblies dependentes.
Descrição da Regra
A reflexão é uma facilidade flexível do.NET Framework que pode ser usado para executar a associação atrasada do aplicativo a um assembly dependente de tempo de execução ou para criar e executar dinamicamente novos tipos durante o tempo de execução.No entanto, essas técnicas podem diminuir o desempenho se são usadas com frequência ou chamadas em loop rígidos.
Para Reflexão e tardias obter mais informações, consulte a seção do capítulo 5 — aprimorando o desempenho de código gerenciado no volume de melhorando o desempenho e a escalabilidade do aplicativo .NET da biblioteca dos padrões e as práticas da Microsoft no MSDN.
Como investigar um aviso
Clique duas vezes na mensagem na janela lista de erros para navegar na Exibição de detalhes da função de dados de perfil.Examine as funções de chamada do método de System.Type ou de System.Reflection para localizar as seções de programa que fazem o uso mais frequente das APIs de reflexão do .NET.Evite usar os métodos que retornam metadados.Quando o desempenho de seu aplicativo for crítico, você pode precisar evitar usar a associação atrasada e criando tipos dinamicamente em tempo de execução.