Udostępnij za pośrednictwem


Instruktaż: Analizowanie kodu zarządzanego kodu wad

W tym przewodniku, przeanalizujesz projekt pod względem wad kodu, używając narzędzia analizy kodu.

Ten przewodnik poprowadzi Cię przez proces użycia analizy kodu, do analizy zestawów kodu zarządzanego .NET pod względem zgodności ze wskazówkami projektowania Microsoft .NET Framework.

W tym przewodniku:

  • Przeanalizujesz i poprawisz ostrzeżenia dotyczące wad kodu.

Wymagania wstępne

  • Visual Studio Premium.

Tworzenie biblioteki klas

Aby utworzyć bibliotekę klas

  1. W menu Plik programu Visual Studio, kliknij Nowy a następnie Projekt.

  2. W oknie dialogowym Nowy projekt, w obszarze Typy projektów, kliknij Visual C#.

  3. W obszarze Szablony, wybierz Biblioteka klas.

  4. W polu tekstowym Nazwa wpisz CodeAnalysisManagedDemo , a następnie kliknij przycisk OK.

  5. Po utworzeniu projektu, otwórz plik Class1.cs.

  6. Zastąp istniejący tekst w klasie Class1.cs na następujący kod:

    //CodeAnalysisManagedDemo
    //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; } }
        }
    }
  7. Zapisz plik Class1.cs.

Analizowanie projektu

Aby przeanalizować zarządzany projekt pod względem wad kodu

  1. Wybierz projekt CodeAnalysisManagedDemo w Eksploratorze rozwiązania.

  2. W menu Projekt, kliknij Właściwości.

    Zostanie wyświetlona strona właściwości CodeAnalysisManagedDemo.

  3. Kliknij Analizakodu.

  4. Upewnij się, że pole WłączoneAnaliza kodu podczas kompilacji (definiuje stałą CODE_ANALYSIS) jest zaznaczone.

  5. Z listy rozwijalnej Uruchom ten zestaw reguł wybierz Wszystkie reguły Microsoft.

  6. W menu Pliku, kliknij Zapisz wybrane elementy, a następnie zamknij stronę właściwości ManagedDemo.

  7. W menu Kompilacja, kliknij Kompiluj ManagedDemo.

    Ostrzeżenia kompilacji projektu CodeAnalysisManagedDemo są zgłaszane w oknach Analiza kodu i Dane wyjściowe.

    Jeśli okno Analiza kodu nie jest wyświetlone, w menu Analiza wybierz Okna a następnie wybierz analizę kodu.

Naprawa problemów analizy kodu

Aby poprawić naruszenia reguł analizy kodu

  1. W menu Widok, kliknij Lista błędów.

    W zależności od wybranego profilu dewelopera, być może trzeba będzie wybrać Inne okna w menu Widok, a następnie kliknąć Lista błędów.

  2. W Eksploratorze rozwiązania, kliknij Pokaż wszystkie pliki.

  3. Następnie rozwiń węzeł właściwości, a następnie otwórz plik AssemblyInfo.cs.

  4. Aby poprawić ostrzeżenia, skorzystaj z poniższej tabeli:

Ostrzeżenia

Aby poprawić ostrzeżenie

CA1014: Znak zespołów o CLSCompliantAttribute: Microsoft.Design: "demo" powinno być oznaczone atrybutem CLSCompliantAttribute z wartością true.

  1. Dodaj dyrektywę usingSystem; do pliku AssemblyInfo.cs.

  2. Następnie, dodaj kod [assembly: CLSCompliant(true)] na końcu pliku AssemblyInfo.cs.

  3. Ponownie skompiluj projekt.

CA1032: Implementować konstruktory wyjątek standardowy: Microsoft.Design: Dodaj następujący konstruktor do klasy: public demo(String)

  • Dodaj konstruktor public demo (String s) : base(s) { } do klasy demo.

CA1032: Implementować konstruktory wyjątek standardowy: Microsoft.Design: Dodaj następujący konstruktor do klasy: public demo(String, Exception)

  • Dodaj konstruktor public demo (String s, Exception e) : base(s, e) { } do klasy demo.

CA1032: Implementować konstruktory wyjątek standardowy: Microsoft.Design: Dodaj następujący konstruktor do klasy: protected demo(SerializationInfo, StreamingContext)

  1. Dodaj kod using System.Runtime.Serialization; na początku pliku klasy Class1.cs.

  2. Następnie, dodaj konstruktor protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } to the class demo.

  3. Ponownie skompiluj projekt.

CA1032: Implementować konstruktory wyjątek standardowy: Microsoft.Design: Dodaj następujący konstruktora do klasy: public demo()

  1. Dodaj konstruktor public demo () : base() { } do klasy demo.

  2. Ponownie skompiluj projekt.

CA1709: Identyfikatory powinny być bocznym poprawnie: Microsoft.Naming: Popraw wielkość liter w nazwie przestrzeni nazw "testCode" zmieniając ją na "TestCode".

  • Popraw wielkość liter w przestrzeni nazw testCode na TestCode.

CA1709: Identyfikatory powinny być bocznym poprawnie: Microsoft.Naming: Popraw wielkość literw nazwie typu "demo" zmieniając ją na "Demo"

  • Zmień nazwę członka na Demo.

CA1709: Identyfikatory powinny być bocznym poprawnie: Microsoft.Naming: Popraw nazwę elementu członkowskiego "item" zmieniając ją na"Item".

  • Zmień nazwę członka na Item.

CA1710: Identyfikatory powinny mieć poprawny sufiks: Microsoft.Naming: Zmień nazwę "testCode.demo" by kończyła się "Exception".

  • Zmień nazwę klasy i jej konstruktorów na DemoException.

CA2210: Zestawów powinny mieć prawidłowe silnej nazwy: Podpisz 'ManagedDemo' kluczem silnej nazwy.

  1. W menu Projekt, kliknij Właściwości ManagedDemo.

    Zostaną wyświetlone właściwości projektu.

  2. Kliknij Podpisywanie.

  3. Zaznacz pole wyboru Podpisz zestaw.

  4. Na liście Wybierz plik klucza wybierz <Nowy... >.

    Pojawi się okno dialogowe Tworzenie klucza silnej nazwy.

  5. W Nazwa pliku klucza, wpisz TestKey.

  6. Wprowadź hasło, a następnie kliknij przycisk OK.

  7. W menu Plik, kliknij Zapisz wybrane elementy, a następnie zamknij stronę właściwości.

  8. Ponownie skompiluj projekt.

CA2237: Typy ISerializable znak z SerializableAttribute: Microsoft.Usage: Dodaj atrybut [Serializable] do typu "demo", aby ten typ implementował interfejs ISerializable.

  1. Dodaj atrybut [Serializable ()] do klasy demo.

  2. Ponownie skompiluj projekt.

Po zakończeniu zmian, plik klasy Class1.cs powinien wyglądać następująco:

//CodeAnalysisManagedDemo
//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; } }
    }
}

Wyklucz ostrzeżenia analizy kodu

Aby wykluczyć ostrzeżenia wad kodu

  1. Dla każdego z pozostałych ostrzeżeń wykonaj następujące czynności:

    1. W oknie Analiza kodu, wybierz ostrzeżenie.

    2. Wybierz Akcje, następnie wybierz Pomiń komunikat, a następnie wybierz W pliku pomijania projektu.

    Aby uzyskać więcej informacji, zobacz Jak: pomija ostrzeżenia, przy użyciu elementu Menu.

  2. Ponownie skompiluj projekt.

    Projekt skompiluje się bez żadnych ostrzeżeń lub błędów.