CA2001: Unikać wywoływania metod problematyczne
TypeName |
AvoidCallingProblematicMethods |
CheckId |
CA2001 |
Kategoria |
Microsoft.Reliability |
Zmiana kluczowa |
Niekluczowa |
Przyczyna
Element członkowski wywołuje potencjalnie niebezpieczną lub problematyczną metodę.
Opis reguły
Należy unikać niepotrzebnych i potencjalnie groźnych wywołań metody.
Naruszenie tej reguły występuje, gdy członek wywołuje jedną z następujących metod.
Metoda |
Opis |
---|---|
Wywoływanie GC.Collect może znacząco wpłynąć na wydajność aplikacji i rzadko jest potrzebne.Aby uzyskać więcej informacji, zobacz wpis na blogu Rico Mariani's Performance Tidbits w MSDN. |
|
Metody Thread.suspend i Thread.Resume stały się przestarzałe z powodu ich nieprzewidywalnego zachowania.Użyj innych klas w przestrzeni nazw System.Threading, takich jak Monitor, [T:System.Threading.Mutex,] , Mutex, i Semaphore do synchronizowania wątków lub ochrony zasobów. |
|
Metoda DangerousGetHandle stwarza zagrożenie bezpieczeństwa, ponieważ może zwracać uchwyt, który jest nieprawidłowy.Zobacz metody DangerousAddRef i DangerousRelease, aby uzyskać więcej informacji na temat bezpiecznego używania metody DangerousGetHandle. |
|
Te metody mogą ładować zestawy z nieoczekiwanych lokalizacji.Na przykład, zobacz posty na blogu Suzanne Cook's .NET CLR Notes LoadFile VS. LoadFrom i Choosing a Binding Context w witrynie MSDN, aby uzyskać informacje na temat metod, które ładują zestawy. |
|
CoSetProxyBlanket (Ole32) CoInitializeSecurity (Ole32) |
W momencie, w którym kod użytkownika zaczyna wykonywać się w zarządzanym procesie jest za późno aby niezawodnie wywołać CoSetProxyBlanket.Common language runtime (CLR) podejmuje akcje inicjalizacji, które mogą uniemożliwić P/Invoke użytkownikom powiedzenie się Jeśli naprawdę musisz wywołać CoSetProxyBlanket dla zarządzanych aplikacji, zaleca się rozpocząć proces przy użyciu pliku wykonywalnego kodu macierzystego (C++), wywołanie CoSetProxyBlanket w kodzie macierzystym, a następnie uruchomienie aplikacji kodu zarządzanego w procesie.(Należy określić numer wersji środowiska uruchomieniowego.) |
Jak naprawić naruszenia
Aby naprawić naruszenie tej zasady, usuń lub zastąp wywołanie metody niebezpiecznej lub problematycznej.
Kiedy pominąć ostrzeżenia
Wiadomości od tej reguły powinno pomijać się tylko wtedy, gdy nie ma innych sposobów na rozwiązanie problematycznej metody.