Compartilhar via


CA2001: evitar métodos problemáticos de chamada

TypeName

AvoidCallingProblematicMethods

CheckId

CA2001

Categoria

Microsoft.Reliability

Alteração Significativa

Sem quebra

Causa

Um membro chama um método potencialmente perigoso ou problemático.

Descrição da Regra

Evite ajustar que faz chamadas desnecessários e potencialmente perigosos do método.

Uma violação desta regra ocorre quando um membro chama um dos seguintes métodos.

Método

Descrição

GC.Collect

A chamada GC.Collect pode afetar significativamente o desempenho do aplicativo e raramente é necessária.Para Boatos de desempenho de Mariani Avançado obter mais informações, consulte a entrada de blog no MSDN.

Thread.Resume

Thread.Suspend

Thread.Suspend e Thread.Resume foram substituídos devido ao seu comportamento imprevisível. Use outras classes no namespace de System.Threading , como Monitor, [T:System.Threading.Mutex,]Mutex, e Semaphore para sincronizar threads ou proteger recursos.

SafeHandle.DangerousGetHandle

O método de DangerousGetHandle gerencie um risco à segurança porque pode retornar um identificador inválido.Consulte DangerousAddRef e os métodos de DangerousRelease para obter mais informações sobre como usar com segurança o método de DangerousGetHandle.

Assembly.LoadFrom

Assembly.LoadFile

Assembly.LoadWithPartialName

Eles podem carregar os assemblies de locais inesperados.Por exemplo, consulte postagens de blog notas de .NET CLR types cozinheiro de Suzanne LoadFile em LoadFrom e Escolhendo um contexto de associação no site do MSDN para obter informações sobre os métodos que carregam os assemblies.

CoSetProxyBlanket (Ole32)

CoInitializeSecurity (Ole32)

Antes de iniciar o código de usuário for executado em um processo gerenciado, é muito tarde chamar o CoSetProxyBlanket.Common Language Runtime (CLR) usa as ações de inicialização que podem impedir que os usuários P/Invoke teve êxito.

Se você precisa chamar CoSetProxyBlanket para um aplicativo gerenciado, recomendamos que você inicia o processo usando um executável de código nativo (C++), chamamos CoSetProxyBlanket em código nativo, e começamos em seu aplicativo de código gerenciado em processo. (Não se esqueça 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 para o método perigoso ou problemático.

Quando Suprimir Alertas

Você deve eliminar mensagens dessa regra apenas quando nenhuma alternativa para o método problemático está disponível.

Consulte também

Outros recursos

Avisos de confiabilidade