CA2001: Evitar chamar métodos problemáticos
Item | Valor |
---|---|
RuleId | CA2001 |
Categoria | Microsoft.Reliability |
Alteração da falha | Sem interrupção |
Causa
Um membro chama um método potencialmente perigoso ou problemático.
Descrição da regra
Evite fazer chamadas de método desnecessárias e potencialmente perigosas. Uma violação dessa regra ocorre quando um membro chama um dos seguintes métodos:
Método | Descrição |
---|---|
System.GC.Collect | Chamando GC. A coleta pode afetar significativamente o desempenho do aplicativo e raramente é necessária. Para obter mais informações, confira a entrada no blog DeSidbits de Desempenho do Rico Mariani no MSDN. |
System.Threading.Thread.Resume System.Threading.Thread.Suspend |
Thread.Suspend e Thread.Resume foram preteridos devido ao comportamento imprevisível. Use outras classes no namespace System.Threading, como Monitor, Mutex e Semaphore, para sincronizar threads ou proteger recursos. |
System.Runtime.InteropServices.SafeHandle.DangerousGetHandle | O método DangerousGetHandle representa um risco de segurança porque pode retornar um identificador que não é válido. Para obter mais informações sobre como usar o método DangerousGetHandle , consulte os métodos DangerousAddRef e DangerousRelease. |
System.Reflection.Assembly.LoadFrom System.Reflection.Assembly.LoadFile System.Reflection.Assembly.LoadWithPartialName |
Esses métodos podem carregar assemblies de locais inesperados. Por exemplo, consulte as postagens no blog Notas CLR do .NET de Suzanne Cook LoadFile vs. LoadFrom e Escolhendo um contexto de associação para obter informações sobre métodos que carregam assemblies. |
CoSetProxyBlanket CoInitializeSecurity |
Quando o código do usuário começa a ser executado em um processo gerenciado, é tarde demais para chamar CoSetProxyBlanket de forma confiável. O Common Language Runtime (CLR)executa ações de inicialização que podem impedir que os usuários P/Invoke tenham êxito.Se você precisar chamar CoSetProxyBlanket um aplicativo gerenciado, recomendamos que inicie o processo usando um executável de código nativo (C++), chame CoSetProxyBlanket no código nativo e inicie o aplicativo de código gerenciado em processo. (Especifique um número de versão de runtime.) |
Como corrigir violações
Para corrigir uma violação dessa regra, remova ou substitua a chamada para o método perigoso ou problemático.
Quando suprimir avisos
Suprima mensagens dessa regra somente quando nenhuma alternativa ao método problemático estiver disponível.
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de