CA2001: Evite chamar métodos problemáticos
TypeName |
AvoidCallingProblematicMethods |
CheckId |
CA2001 |
<strong>Categoria</strong> |
Microsoft.Reliability |
Alteração significativa |
Não-separável |
Causa
Um membro chama um método de potencialmente perigoso ou problemático.
Descrição da regra
Evite fazer chamadas de método desnecessário e potencialmente perigosos.
Uma violação desta regra ocorre quando um membro chama um dos seguintes métodos.
Método |
Descrição |
---|---|
Chamando o GC.Coletar pode afetar significativamente o desempenho do aplicativo e raramente é necessário. Para obter mais informações, consulte o Dados sobre o desempenho do Rico Mariani a entrada de blog no MSDN. |
|
Thread.Suspend e Thread.Resume foram excluídas por causa do comportamento imprevisível. Usar outras classes de System.Threading namespace, como Monitor, [T:System.Threading.Mutex,] Mutex, e Semaphore para sincronizar segmentos ou proteger recursos. |
|
O método DangerousGetHandle representa um risco de segurança, pois pode retornar um identificador que não é válido. Consulte o DangerousAddRef e o DangerousRelease métodos para obter mais informações sobre como usar o método DangerousGetHandle com segurança. |
|
Esses métodos podem carregar assemblies de locais inesperados. Por exemplo, consulte Suzanne Cook.Observações do NET CLR postagens de blog LoadFile vs. LoadFrom e a escolha de um contexto de ligação no site do MSDN para obter informações sobre os métodos de carregar assemblies. |
|
CoSetProxyBlanket (Ole32) CoInitializeSecurity (Ole32) |
No momento em que o código de usuário começa a ser executada em um processo gerenciado, é tarde demais confiável chamar CoSetProxyBlanket. O common language runtime (CLR) leva as ações de inicialização podem impedir que os usuários P/Invoke subseqüente. Se você tiver que chamar CoSetProxyBlanket para um aplicativo gerenciado, recomendamos que você iniciar o processo usando um executável do código nativo (C++), chama CoSetProxyBlanket no código nativo e iniciar o seu aplicativo de código gerenciado no processo. (Certifique-se de especificar um número de versão do runtime.) |
Como corrigir violações
Para corrigir uma violação desta regra, remover ou substituir a chamada ao método perigoso ou problemática.
Quando suprimir avisos
Você deve suprimir mensagens desta regra somente quando há alternativas para o método problemático estão disponíveis.