DA0012: A quantidade significativa de reflexão
Identificação da regra |
DA0012 |
<strong>Categoria</strong> |
.NET Framework uso |
Métodos de criação de perfil |
Amostragem |
Message (Mensagem) |
Você pode estar usando reflexão excessivamente.É uma operação cara. |
Tipo de regra |
Aviso |
Causa
Chamadas para métodos de System. Reflection, como, por exemplo, InvokeMember e GetMember ou métodos de tipo como, por exemplo, MemberInvoke são uma parte significativa dos dados de criação de perfil.Quando possível, considere substituir esses métodos com o enlace inicial para os métodos dos assemblies dependentes.
Descrição da regra
A reflexão é um recurso flexível da.NET Framework que pode ser usado para executar ligação tardia do seu aplicativo a um conjunto dependente de tempo de execução ou para criar e executar novos tipos de dinamicamente durante o tempo de execução.No entanto, essas técnicas podem diminuir o desempenho se eles forem usados com freqüência ou chamados em loops apertados.
Para obter mais informações, consulte o de reflexão e ligação tardia seção do capítulo 5 — melhorando o desempenho do código gerenciado no Improving.Escalabilidade e desempenho do aplicativo NET volume da biblioteca Microsoft Patterns and Practices no MSDN.
Como investigar um aviso
Clique duas vezes a mensagem na janela lista de erros para navegar até o O modo de exibição de detalhes de função dos dados de criação de perfil.Examine as funções de chamada do método para localizar as seções do programa que tornam o uso mais freqüente de System. Type ou System. Reflection.NET APIs de reflexão.Evite usar métodos que retornam metadados.Quando o desempenho do seu aplicativo é essencial, talvez você precise Evite usar atrasado ligação e Criando tipos dinamicamente em tempo de execução.