CA2001: Zamezení volání metod problematické
TypeName |
AvoidCallingProblematicMethods |
CheckId |
CA2001 |
Kategorie |
Microsoft.Reliability |
Narušující změna |
Nenarušující |
Příčina
Člen volá potencionálně nebezpečnou nebo problematickou metodu.
Popis pravidla
Vyhněte se volání zbytečných a potenciálně nebezpečných metod.
K porušení tohoto pravidla dojde, když člen zavolá jednu z následujících metod.
Metoda |
Popis |
---|---|
Volání metody GC.Collect může podstatně ovlivnit výkon aplikace a je jen výjimečně nezbytné.Více informací naleznete v článku Rico Mariani's Performance Tidbits na stránkách MSDN blogu. |
|
Metody Thread.Suspend a Thread.Resume se již nepoužívají z důvodu jejich nepředvídatelného chování.Pro synchronizaci vláken a ochranu zdrojů lze použít třídy z oboru názvů System.Threading jako jsou například Monitor, [T:System.Threading.Mutex,], Mutex a Semaphore. |
|
Metoda DangerousGetHandle představuje bezpečnostní riziko, jelikož může vracet neplatný popisovač.Více informací o bezpečném použití metody DangerousGetHandle lze nalézt u metod DangerousAddRef a DangerousRelease. |
|
Tyto metody mohou načíst sestavení z neočekávaných míst.Informace o metodách, které načítají sestavení lze například nalézt na stránkách blogu Suzanne Cook's .NET CLR Notes LoadFile VS. LoadFrom a v článku Výběr kontextu vazby na webových stránkách MSDN. |
|
CoSetProxyBlanket (Ole32) CoInitializeSecurity (Ole32) |
Poté co je uživatelský kód spuštěn, nelze již metodu CoSetProxyBlanket spolehlivě zavolat.Modul CLR (Common Language Runtime) provádí inicializace, které mohou zabránit v úspěšném zavolání P/Invoke uživatelem. Pokud je nutné zavolat pro spravovanou aplikaci metodu CoSetProxyBlanket, doporučujeme spustit proces použitím spustitelného souboru nativního kódu (C++), zavoláním metody CoSetProxyBlanket v tomto nativním kódu a poté v procesu spustit aplikaci se spravovaným kódem.(Je nutné specifikovat číslo verze modulu runtime!) |
Jak vyřešit porušení
Porušení tohoto pravidla lze vyřešit odstraněním nebo nahrazením volání nebezpečné nebo problematické metody.
Kdy potlačit upozornění
Zprávy tohoto pravidla lze potlačit jedině, když nejsou k dispozici žádné alternativy k problematickým metodám.