CA2001: избегайте вызовов проблемных методов
TypeName |
AvoidCallingProblematicMethods |
CheckId |
CA2001 |
Категория |
Microsoft.Reliability |
Критическое изменение |
Не критическое |
Причина
Член вызывает потенциально опасный или проблемный метод.
Описание правила
Избегайте создания ненужных и потенциально опасных вызовов методов.
Это правило нарушается при вызове членом одного из следующих методов.
Метод |
Описание |
---|---|
Вызов GC.Collect может серьезно повлиять на производительность приложения и требуется очень редко.Дополнительные сведения см. в записи блога Rico Mariani's Performance Tidbits в MSDN. |
|
Из-за непредсказуемого поведения методы Thread.Suspend и Thread.Resume более не используются. Для синхронизации потоков или защиты ресурсов используйте другие классы в пространстве имен System.Threading, такие как Monitor, [T:System.Threading.Mutex,]Mutex и Semaphore. |
|
Метод DangerousGetHandle создает угрозу безопасности, поскольку он может возвращать недопустимый дескриптор.Дополнительные сведения о безопасном использовании метода DangerousGetHandle см. в описании методов DangerousAddRef и DangerousRelease |
|
Эти методы могут загружать сборки из непредвиденных расположений.Например, чтобы узнать информацию о методах загрузки сборок см. записи блога Suzanne Cook's .NET CLR Notes LoadFile vs. LoadFrom и Choosing a Binding Context на веб-сайте MSDN. |
|
CoSetProxyBlanket (Ole32) CoInitializeSecurity (Ole32) |
Когда в управляемом процессе начинается выполнение кода пользователя, уже слишком поздно для надежного вызова CoSetProxyBlanket.CLR выполняет действия по инициализации, которые могут помешать успешной работе пользователей P/Invoke. Если для управляемого приложения нужно вызвать метод CoSetProxyBlanket, рекомендуется начать процесс с помощью исполняемого файла на машинном коде (C++), вызвать CoSetProxyBlanket в машинном коде, а затем запустить управляемое приложение. (Убедитесь, что указан номер версии среды выполнения.) |
Устранение нарушений
Чтобы устранить нарушение данного правила, удалите или замените вызов опасного или проблемного метода.
Отключение предупреждений
Следует отключить вывод сообщений этого правила, только если других альтернатив этому проблемному методу нет.