Пошаговое руководство. Использование статического анализа кода для поиска дефектов кода

В этом пошаговом руководстве вы проанализируете управляемый проект на предмет дефектов кода, используя прежний анализ кода.

В этой статье описывается процесс использования устаревшего анализа для анализа сборок управляемого кода .NET на соответствие рекомендациям по проектированию .NET.

Создание библиотеки классов

  1. откройте Visual Studio и создайте новый проект на основе шаблона библиотеки классов (платформа .NET Framework) .

  2. Назовите проект кодеаналисисманажеддемо.

  3. После создания проекта откройте файл Class1. CS .

  4. Замените существующий текст в Class1. cs следующим кодом:

    using System;
    
    namespace testCode
    {
        public class demo : Exception
        {
            public static void Initialize(int size) { }
            protected static readonly int _item;
            public static int item { get { return _item; } }
        }
    }
    
  5. Сохраните файл Class1. cs.

Анализ проекта на предмет дефектов кода

  1. Выберите проект Кодеаналисисманажеддемо в Обозреватель решений.

  2. В меню Проект выберите пункт Свойства.

    Отобразится страница свойств Кодеаналисисманажеддемо.

  3. перейдите на вкладку Code Analysis .

  1. убедитесь, что выбран параметр включить Code Analysis при сборке .

  2. В раскрывающемся списке выполнить этот набор правил выберите параметр Майкрософт все правила.

  1. Убедитесь, что в разделе анализаторы двоичных файлов выбран параметр выполнять при сборке .

  2. В раскрывающемся списке активные правила выберите Microsoft ALL Rules (все правила).

  1. В меню файл выберите команду Сохранить выбранные элементы, а затем закройте страницы свойств.

  2. В меню Сборка выберите команду построить кодеаналисисманажеддемо.

    Предупреждения сборки проекта Кодеаналисисманажеддемо отображаются в окнах Список ошибок и вывод .

Устранение проблем с анализом кода

  1. В меню вид выберите Список ошибок.

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

  2. В обозревателе решений выберите Показать все файлы.

  3. Разверните узел Свойства, а затем откройте файл AssemblyInfo. CS .

  4. Чтобы исправить предупреждения, используйте следующие советы.

    CA1014: Пометьте сборки с помощью CLSCompliantAttribute: Добавьте код [assembly: CLSCompliant(true)] в конец файла AssemblyInfo. cs.

    CA1032: реализуйте стандартные конструкторы исключений: Добавьте конструктор public demo (String s) : base(s) { } в класс demo .

    CA1032: реализуйте стандартные конструкторы исключений: Добавьте конструктор public demo (String s, Exception e) : base(s, e) { } в класс demo .

    CA1032: реализуйте стандартные конструкторы исключений: Добавьте конструктор protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } в демонстрацию класса. Также необходимо добавить using оператор для System.Runtime.Serialization .

    CA1032: реализуйте стандартные конструкторы исключений: Добавьте конструктор public demo () : base() { } в класс demo .

    CA1709: идентификаторы должны иметь правильный регистр: измените регистр пространства имен testCode на TestCode .

    CA1709: идентификаторы должны иметь правильный регистр: измените имя элемента на Demo .

    CA1709: идентификаторы должны иметь правильный регистр: измените имя элемента на Item .

    CA1710: идентификаторы должны иметь правильные суффиксы: измените имя класса и его конструкторов на DemoException .

    CA2237: Mark Types ISerializable с SerializableAttribute: добавьте [Serializable ()] атрибут в класс demo .

    CA2210: сборки должны иметь допустимые строгие имена: знак "кодеаналисисманажеддемо" с ключом строгого имени:

    1. в меню Project выберите свойства кодеаналисисманажеддемо.

      Отобразятся свойства проекта.

    2. Перейдите на вкладку Подписывание .

    3. Установите флажок подписать сборку .

    4. В списке выберите имя строки файл ключа выберите <New> .

      Откроется диалоговое окно Создание ключа строгого имени.

    5. В качестве имени файла ключа введите тесткэй.

    6. Введите пароль и нажмите кнопку ОК.

    7. В меню файл выберите команду Сохранить выбранные элементы, а затем закройте страницы свойств.

    После завершения всех изменений файл Class1. cs должен выглядеть следующим образом:

    using System;
    using System.Runtime.Serialization;
    
    namespace TestCode
    {
        [Serializable()]
        public class DemoException : Exception
        {
            public DemoException () : base() { }
            public DemoException(String s) : base(s) { }
            public DemoException(String s, Exception e) : base(s, e) { }
            protected DemoException(SerializationInfo info, StreamingContext context) : base(info, context) { }
    
            public static void Initialize(int size) { }
            protected static readonly int _item;
            public static int Item { get { return _item; } }
        }
    }
    
  5. Выполните повторную сборку проекта.

Исключить предупреждения анализа кода

  1. Для каждого из оставшихся предупреждений выполните следующие действия.

    1. Выберите предупреждение в Список ошибок.

    2. В контекстном меню (контекстное меню) выберите подавлять > в файле подавления.

  2. Выполните повторную сборку проекта.

    Проект строится без предупреждений или ошибок.

См. также раздел

Анализ кода для управляемого кода