Набор правил "Рекомендуемые правила для управляемого кода"Managed Recommended Rules rule set for managed code

Используйте набор правил "Рекомендуемые правила Майкрософт", чтобы сосредоточиться на наиболее важных проблемах в управляемом коде, включая потенциальные бреши в системе безопасности, сбои приложений, а также другие важные логики и ошибки проектирования.Use the Microsoft Managed Recommended Rules rule set to focus on the most critical problems in your managed code, including potential security holes, application crashes, and other important logic and design errors. Этот набор правил включает все правила из набора правил " управляемые минимальные правила ".This rule set includes all the rules in the Managed Minimum Rules rule set.

Включите это правило в набор настраиваемых правил, создаваемых для проектов.Include this rule set in any custom rule set that you create for your projects.

ПравилоRule ОписаниеDescription
CA1001CA1001 Типы, которым принадлежат освобождаемые поля, должны быть освобождаемымиTypes that own disposable fields should be disposable
CA1009CA1009 Правильно объявляйте обработчики событийDeclare event handlers correctly
CA1016CA1016 Пометьте сборки с помощью AssemblyVersionAttributeMark assemblies with AssemblyVersionAttribute
CA1033CA1033 Методы интерфейса должны быть доступны для вызова дочерними типамиInterface methods should be callable by child types
CA1049CA1049 Типы, которым принадлежат собственные ресурсы, должны быть освобождаемымиTypes that own native resources should be disposable
CA1060CA1060 Переместите методы P/Invoke в класс NativeMethodsMove P/Invokes to NativeMethods class
CA1061CA1061 Не скрывайте методы базовых классовDo not hide base class methods
CA1063CA1063 Правильно реализуйте IDisposableImplement IDisposable correctly
CA1065CA1065 Не вызывайте исключения в непредвиденных местахDo not raise exceptions in unexpected locations
CA1301CA1301 Избегайте повторяющихся акселераторовAvoid duplicate accelerators
CA1400CA1400 Для методов P/Invoke должны существовать точки входаP/Invoke entry points should exist
CA1401CA1401 Методы P/Invoke не должны быть видимымиP/Invokes should not be visible
CA1403CA1403 Типы с автомакетом не должны быть видимыми для COMAuto layout types should not be COM visible
CA1404CA1404 Вызывайте GetLastError сразу после P/InvokeCall GetLastError immediately after P/Invoke
CA1405CA1405 Базовые типы, относящиеся к типу, видимому для COM, должны быть видимыми для COMCOM visible type base types should be COM visible
CA1410CA1410 Методы регистрации COM должны быть согласованнымиCOM registration methods should be matched
CA1415CA1415 Правильно объявляйте методы P/InvokeDeclare P/Invokes correctly
CA1821CA1821 Удалите пустые методы завершенияRemove empty finalizers
CA1900CA1900 Поля типов значений должны быть переносимымиValue type fields should be portable
CA1901CA1901 Объявления P/Invoke должны быть переносимымиP/Invoke declarations should be portable
CA2002CA2002 Не блокируйте объекты с ненадежными удостоверениямиDo not lock on objects with weak identity
CA2100CA2100 Проверьте запросы SQL на наличие уязвимостей системы безопасностиReview SQL queries for security vulnerabilities
CA2101CA2101 Укажите тип маршалинга для строковых аргументов P/InvokeSpecify marshaling for P/Invoke string arguments
CA2108CA2108 Проверьте объявляемые параметры безопасности типов значенийReview declarative security on value types
CA2111CA2111 Указатели не должны быть видимымиPointers should not be visible
CA2112CA2112 Защищенные типы не должны предоставлять поляSecured types should not expose fields
CA2114CA2114 Безопасность метода должна быть надмножеством типаMethod security should be a superset of type
CA2116CA2116 APTCA-методы должны вызывать только APTCA-методыAPTCA methods should only call APTCA methods
CA2117CA2117 APTCA-типы должны расширять только базовые APTCA-типыAPTCA types should only extend APTCA base types
CA2122CA2122 Не используйте косвенное представление методов с требованиями ссылкиDo not indirectly expose methods with link demands
CA2123CA2123 Переопределяющие требования ссылки должны быть идентичны базовымOverride link demands should be identical to base
CA2124CA2124 Ограничьте уязвимые предложения finally во внешних блоках tryWrap vulnerable finally clauses in outer try
CA2126CA2126 Для требований ссылок на тип необходимы требования наследованияType link demands require inheritance demands
CA2131CA2131 Критические для безопасности типы не могут участвовать в эквивалентности типовSecurity critical types may not participate in type equivalence
CA2132CA2132 Конструкторы по умолчанию должны быть по меньшей мере такими же критическими, как конструкторы по умолчанию базового типаDefault constructors must be at least as critical as base type default constructors
CA2133CA2133 Делегаты должны быть привязаны к методам с соответствующей прозрачностьюDelegates must bind to methods with consistent transparency
CA2134CA2134 Методы должны сохранять одинаковую прозрачность при переопределении базовых методовMethods must keep consistent transparency when overriding base methods
CA2137CA2137 Прозрачные методы должны содержать только поддающийся проверке промежуточный языкTransparent methods must contain only verifiable IL
CA2138CA2138 Прозрачные методы не должны вызывать методы с атрибутом SuppressUnmanagedCodeSecurityTransparent methods must not call methods with the SuppressUnmanagedCodeSecurity attribute
CA2140CA2140 Прозрачный код не должен ссылаться на критические для безопасности элементыTransparent code must not reference security critical items
CA2141CA2141 Прозрачные методы не должны соответствовать требованиям LinkDemandTransparent methods must not satisfy LinkDemands
CA2146CA2146 Типы должны быть по крайней мере настолько же критическими, как их базовые типы и интерфейсыTypes must be at least as critical as their base types and interfaces
CA2147CA2147 Прозрачные методы могут не использовать утверждения безопасностиTransparent methods may not use security asserts
CA2149CA2149 Прозрачные методы не должны вызывать машинный кодTransparent methods must not call into native code
CA2200CA2200 Повторно порождайте исключения для сохранения сведений стекаRethrow to preserve stack details
CA2202CA2202 Не ликвидируйте объекты несколько разDo not dispose objects multiple times
CA2207CA2207 Используйте встроенную инициализацию статических полей типов значенийInitialize value type static fields inline
CA2212CA2212 Не помечайте обслуживаемые компоненты с помощью WebMethodDo not mark serviced components with WebMethod
CA2213CA2213 Следует высвобождать высвобождаемые поляDisposable fields should be disposed
CA2214CA2214 Не вызывайте переопределяемые методы в конструкторахDo not call overridable methods in constructors
CA2216CA2216 Высвобождаемые типы должны объявлять методы завершенияDisposable types should declare finalizer
CA2220CA2220 Методы завершения должны вызывать метод завершения базового классаFinalizers should call base class finalizer
CA2229CA2229 Реализуйте конструкторы сериализацииImplement serialization constructors
CA2231CA2231 Перегрузите оператор равенства на переопределяющем типе ValueType.EqualsOverload operator equals on overriding ValueType.Equals
CA2232CA2232 Отметьте точки входа Windows Forms меткой STAThreadMark Windows Forms entry points with STAThread
CA2235CA2235 Пометьте все несериализуемые поляMark all non-serializable fields
CA2236CA2236 Вызывайте методы базового класса для типов ISerializableCall base class methods on ISerializable types
CA2237CA2237 Пометьте типы ISerializable атрибутом SerializableAttributeMark ISerializable types with SerializableAttribute
CA2238CA2238 Правильно реализуйте методы сериализацииImplement serialization methods correctly
CA2240CA2240 Правильно реализуйте ISerializableImplement ISerializable correctly
CA2241CA2241 Задайте правильные аргументы для методов форматированияProvide correct arguments to formatting methods
CA2242CA2242 Правильно выполняйте проверку NaNTest for NaN correctly