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.