Udostępnij za pośrednictwem


DA0012: Znaczną ilość odbicia

Identyfikator reguły

DA0012

Kategoria

Użycie .NET Framework

Metody profilowania

Próbkowanie

Wiadomość

Prawdopodobne nadmierne użycie odbicia.Ta operacja jest kosztowna.

Typ reguły

Ostrzeżenie

Przyczyna

Wywołania metod System.Reflection, takich jak InvokeMember i GetMember lub metod Type, takich jak MemberInvoke są znaczącą częścią danych profilowania.Jeśli to możliwe, należy rozważyć zastąpienie tych metod przez wczesne wiązanie metod zależnych zestawów.

Opis reguły

Odbicie jest elastycznym instrumentem .NET Framework, używanym do wykonywania późnego wiązania aplikacji do zależnego zestawu czasu wykonywania, lub do tworzenia i dynamicznego wykonywania nowych typów, w czasie wykonywania.Jednak te techniki mogą obniżyć wydajność, jeśli są często używane lub są wywoływane w krótkich pętlach.

Aby uzyskać więcej informacji, zobacz Odbicie i późne wiązanie sekcji Rozdział 5 — Poprawa wydajności zarządzanego kodu aplikacji .NET oraz skalowalność woluminu wzorców firmy Microsoft i praktyk w bibliotece w witrynie MSDN.

Jak badać ostrzeżenia

Kliknij dwukrotnie wiadomość w oknie Lista błędów, przejdź do danych profilowania Wyświetl szczegóły funkcji.Zbadaj wywołanie funkcji System.Type lub metody System.Reflection, aby znaleźć sekcje programu, które najczęściej wykorzystują .NET Reflection API.Należy unikać metod zwracających metadane.Gdy wydajność aplikacji jest krytyczna, należy unikać późnego wiązania i tworzenia typów dynamicznie w czasie wykonywania.