CA2001: Evitare le chiamate a metodi problematici
Articolo | Valore |
---|---|
ID regola | CA2001 |
Category | Microsoft.Reliability |
Modifica | Nessuna interruzione |
Causa
Un membro chiama un metodo potenzialmente pericoloso o problematico.
Descrizione regola
Evitare di effettuare chiamate al metodo inutili e potenzialmente pericolose. Una violazione di questa regola si verifica quando un membro chiama uno dei metodi seguenti:
metodo | Descrizione |
---|---|
System.GC.Collect | Chiamata di GC. La raccolta può influire significativamente sulle prestazioni dell'applicazione ed è raramente necessaria. Per altre informazioni, vedere il post di blog di Rico Mariani Performance Tidbits su MSDN. |
System.Threading.Thread.Resume System.Threading.Thread.Suspend |
Thread.Suspend e Thread.Resume sono stati deprecati a causa del comportamento imprevedibile. Usare altre classi nello spazio dei System.Threading nomi, ad esempio Monitor, Mutexe Semaphore, per sincronizzare i thread o proteggere le risorse. |
System.Runtime.InteropServices.SafeHandle.DangerousGetHandle | Il DangerousGetHandle metodo rappresenta un rischio per la sicurezza perché può restituire un handle non valido. Per altre informazioni su come usare il DangerousGetHandle metodo in modo sicuro, vedere i DangerousAddRef metodi e DangerousRelease . |
System.Reflection.Assembly.LoadFrom System.Reflection.Assembly.LoadFile System.Reflection.Assembly.LoadWithPartialName |
Questi metodi possono caricare assembly da posizioni impreviste. Ad esempio, per informazioni sui metodi che caricano assembly, vedere il blog delle note CLR .NET di Susan Cook e LoadFile vs. LoadFrom e Scelta di un contesto di associazione. |
CoSetProxyBlanket Coinitializesecurity |
Al momento dell'avvio dell'esecuzione del codice utente in un processo gestito, è troppo tardi per chiamare CoSetProxyBlanket in modo affidabile . Common Language Runtime (CLR) esegue azioni di inizializzazione che potrebbero impedire agli utenti di eseguire operazioni P/Invoke.Se è necessario chiamare CoSetProxyBlanket per un'applicazione gestita, è consigliabile avviare il processo usando un eseguibile di codice nativo (C++), chiamare CoSetProxyBlanket nel codice nativo e quindi avviare l'applicazione di codice gestito in fase di elaborazione. Assicurarsi di specificare un numero di versione di runtime. |
Come correggere le violazioni
Per correggere una violazione di questa regola, rimuovere o sostituire la chiamata al metodo pericoloso o problematico.
Quando eliminare gli avvisi
Eliminare i messaggi da questa regola solo quando non sono disponibili alternative al metodo problematico.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per