Partilhar via


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.