Поделиться через


Предупреждения надежности

Предупреждения надежности поддерживают надежность библиотек и приложений, например правильность использования памяти и потоков.

В этом подразделе

Правило

Описание

CA2000: удалите объекты до того, как будет потеряна область действия

Необходимо явно удалить объект до того, как все ссылки на него окажутся вне области действия, так как может произойти исключительное событие, которое воспрепятствует выполнению метода завершения объекта.

CA2001: избегайте вызовов проблемных методов

Член вызывает потенциально опасный или проблемный метод.

CA2002: не блокировать объекты со слабой идентификацией

К объекту со слабой идентификацией может быть получен прямой доступ через границы домена приложения. Поток пытается получить блокировку объекта со слабой идентификацией, который может быть заблокирован вторым потоком в другом домене приложения, имеющим блокировку того же объекта.

CA2003: не следует обрабатывать нити как потоки

Управляемый поток обрабатывается как поток Win32.

CA2004: удалите вызовы GC.KeepAlive

При переходе к использованию класса SafeHandle необходимо удалить все вызовы метода GC.KeepAlive (объект). В этом случае классам не требуется вызывать метод GC.KeepAlive, поскольку для завершения дескриптора ОС они используют не метод завершения, а класс SafeHandle.

CA2006: используйте SafeHandle для инкапсуляции машинных ресурсов

Использование указателя IntPtr в управляемом коде может указывать на потенциальную проблему безопасности и надежности. Необходимо изучить все случаи использования указателя IntPtr, чтобы определить, не следует ли использовать вместо него класс SafeHandle или другую подобную технологию.