CA2001: Evitar 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ários 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 de seu comportamento imprevisível.Usar outras classes na System.Threading espaço para nome, 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 que 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) executa ações de inicialização que poderão impedir que os usuários P/Invoke subseqüente. Se você tiver chamar CoSetProxyBlanket para um aplicativo gerenciado, é recomendável que você iniciar o processo usando um executável do código nativo (C++), chama CoSetProxyBlanket no código nativo e inicie o seu aplicativo de código gerenciado no processo.(Certifique-se de especificar um número de versão de tempo de execução.) |
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.