Поделиться через


DA0012. Слишком много вызовов метода Reflection

Идентификатор правила

DA0012

Категория

Использование .NET Framework

Методы профилирования

Выборка

Сообщение

Возможно, слишком интенсивно используется отражение.Это является затратной операцией.

Тип правила

Предупреждение

Причина

Вызовы методов System.Reflection, например InvokeMember и GetMember, или методов Type, например MemberInvoke, составляют значительную часть данных профилирования.Рекомендуется по возможности заменить эти методы ранней привязкой к методам зависимых сборок.

Описание правила

Отражение является гибким средством платформы .NET Framework, которое может использоваться для выполнения позднего связывания приложения с зависимой сборкой времени выполнения или для создания и динамического выполнения новых типов во время выполнения.Однако эти приемы могут снизить производительность при частом использовании или при вызове с кратким циклом.

Дополнительные сведения см. в подразделе Отражение и позднее связывание раздела "Глава 5 – Улучшение производительности управляемого кода" в томе "Повышение производительности и масштабируемости приложений .NET" библиотеки шаблонов и практических рекомендаций Майкрософт на веб-сайте MSDN.

Анализ предупреждения

Дважды щелкните сообщение в окне "Список ошибок", чтобы перейти к представлению Представление сведений о функции данных профилирования.Проверьте функции вызова метода System.Type или System.Reflection, чтобы найти секции программы, которые наиболее часто используют API-интерфейсы отражения .NET.Избегайте использования методов, возвращающих метаданные.Если производительность приложения критически важна, возможно, нужно будет избегать позднего связывания и динамического создания типов во время выполнения.