CA2001: Evitare le chiamate a metodi problematici
TypeName |
AvoidCallingProblematicMethods |
CheckId |
CA2001 |
Categoria |
Microsoft.Reliability |
Breaking Change |
Non sostanziale |
Causa
Un membro chiama un metodo potenzialmente pericoloso o problematico.
Descrizione della regola
Evitare di effettuare chiamate a metodi potenzialmente pericolosi e superflui.
Quando un membro chiama uno dei seguenti metodi, si verifica una violazione di questa regola.
Metodo |
Descrizione |
---|---|
La chiamata di GC.Collect può incidere in modo significativo sulle prestazioni dell'applicazione ed è raramente necessaria.Per ulteriori informazioni, vedere il post Considerazioni di Rico Mariani sul blog di MSDN. |
|
Thread.Suspend e Thread.Resume sono stati deprecati a causa del comportamento imprevedibile. Utilizzare le altre classi nello spazio dei nomi System.Threading, ad esempio Monitor, [T:System.Threading.Mutex,], Mutex e Semaphore per sincronizzare i thread o proteggere le risorse. |
|
Il metodo DangerousGetHandle pone un problema di sicurezza perché può restituire un handle che non è valido.Per ulteriori informazioni su come utilizzare il metodo DangerousGetHandle in modo sicuro, vedere i metodi DangerousAddRef e DangerousRelease. |
|
Questi metodi possono caricare assembly dai percorsi non previsti.Ad esempio, vedere i post del blog delle note di CLR .NET di Suzanne Cook's LoadFile vs. LoadFrom e Choosing a Binding Context nel sito Web MSDN per informazioni sui metodi di caricamento degli assembly. |
|
CoSetProxyBlanket (Ole32) CoInitializeSecurity (Ole32) |
Una volta avviata l'esecuzione del codice utente in un processo gestito, è troppo tardi per chiamare CoSetProxyBlanket in modo affidabile.In CLR (Common Language Runtime) vengono adottate misure che potrebbero impedire l'esito positivo di P/Invoke. Se è necessario chiamare CoSetProxyBlanket per un'applicazione gestita, si consiglia di avviare il processo utilizzando un file eseguibile di codice nativo (C++), chiamare CoSetProxyBlanket nel codice nativo, quindi avviare l'applicazione in codice gestito nel processo. 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.
Esclusione di avvisi
È necessario eliminare i messaggi da questa regola solo quando non sono disponibili alternative al metodo problematico.