CA2001: Vyhněte se volání problematických metod
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 |
Description |
---|---|
Volání metody GC.Collect může podstatně ovlivnit výkon aplikace a je jen výjimečně nezbytné.Další informace naleznete v tématu Tidbits Portoriku Mariani výkon blogu na webu MSDN. |
|
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č.Najdete DangerousAddRef a DangerousRelease Další informace o tom, jak bezpečně používat metody DangerousGetHandle metody. |
|
Tyto metody mohou načíst sestavení z neočekávaných míst.Například zobrazit příspěvky blogu .NET CLR poznámky Suzanne Cook funkci LoadFile vs. LoadFrom a Volba kontext vazby na webu MSDN informace o metodách, které načíst sestavení. |
|
Funkce CoSetProxyBlanket (Ole32) U funkce 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.