DA0012: Quantidade significativa de reflexão
Identificação da regra |
DA0012 |
<strong>Categoria</strong> |
.Uso do NET Framework |
Métodos de criação de perfil |
Amostragem |
Message (Mensagem) |
Talvez você esteja 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 perfil. Quando possível, considere substituir esses métodos com ligação 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 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.Volume de escalabilidade e desempenho do aplicativo NET da biblioteca Microsoft Patterns and Practices no MSDN.
Como investigar um aviso.
Clique duas vezes na mensagem na janela lista de erros para navegar até o O modo de exibição de detalhes de função de dados de criação de perfil. Examine as funções de chamada do método System. Type ou System. Reflection para localizar as seções do programa que tornam o uso mais freqüente.NET APIs de reflexão. Evite usar métodos que retornam metadados. Quando o desempenho do seu aplicativo é essencial, convém evitar o uso atrasado ligação e Criando tipos dinamicamente em tempo de execução.