Freigeben über


CA1903: Nur API aus Zielframework verwenden

TypeName

UseOnlyApiFromTargetedFramework

CheckId

CA1903

Kategorie (Category)

Microsoft.Portability

Unterbrechende Änderung

Unterbrechend – Bei Auslösung gegen die Signatur eines extern sichtbaren Members oder Typs.

Nicht unterbrechend – Bei Auslösung im Text einer Methode.

Ursache

Ein Member oder Typ verwendet ein Member oder einen Typ, das bzw. der in einem Service Pack eingeführt wurde, das nicht im Zielframework des Projekts enthalten ist.

Regelbeschreibung

In .NET Framework 2.0 Service Pack 1 und 2, .NET Framework 3.0 Service Pack 1 und 2 sowie .NET Framework 3.5 Service Pack 1 wurden neue Member und Typen aufgenommen.Projekte, die auf die Hauptversionen von .NET Framework abzielen, können unabsichtlich Abhängigkeiten von diesen neuen APIs zeigen.Um derartige Abhängigkeiten zu vermeiden, wird diese Regel bei Verwendung aller neuen Member und Typen ausgelöst, die nicht standardmäßig im Zielframework des Projekts enthalten waren.

Zielframework und Service Pack-Abhängigkeiten

Verwendetes Zielframework

Auslösung bei Verwendung von Membern aus

.NET Framework 2.0

.NET Framework 2.0 SP1, .NET Framework 2.0 SP2

.NET Framework 3.0

.NET Framework 2.0 SP1, .NET Framework 2.0 SP2, .NET Framework 3.0 SP1, .NET Framework 3.0 SP2

.NET Framework 3.5

.NET Framework 3.5 SP1

.NET Framework 4

Nicht zutreffend

Weitere Informationen zum Ändern des Zielframeworks eines Projekts finden Sie unter Ausrichten auf eine bestimmte .NET Framework-Version oder ein bestimmtes .NET Framework-Profil.

Behandeln von Verstößen

Um die Abhängigkeit vom Service Pack zu entfernen, entfernen Sie alle Verwendungen des neuen Members oder Typs.Wenn es sich um eine absichtliche Abhängigkeit handelt, können Sie die Warnung unterdrücken oder diese Regel deaktivieren.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie die durch diese Regel ausgelöste Warnung nicht, wenn dies keine absichtliche Abhängigkeit von dem jeweiligen Service Pack ist.In diesem Fall kann die Anwendung in Systemen, in denen dieses Service Pack nicht installiert ist, möglicherweise nicht mehr ausgeführt werden.Bei einer absichtlichen Abhängigkeit können Sie die Warnung unterdrücken oder diese Regel deaktivieren.

Beispiel

Im folgenden Beispiel wird eine Klasse gezeigt, die den Typ DateTimeOffset verwendet, der nur in .NET 2.0 Service Pack 1 verfügbar ist.Dieses Beispiel erfordert, dass .NET Framework 2.0 in der Dropdownliste Zielframework in den Projekteigenschaften ausgewählt wurde.

using System;
namespace Samples
{
    public class LibraryBook
    {
        private readonly string _Title;
        private DateTimeOffset _CheckoutDate;   // Violates this rule 
        public LibraryBook(string title)
        {
            _Title = title;
        }
        public string Title
        {
        get { return _Title; }
        }
        public DateTimeOffset CheckoutDate      // Violates this rule
        {
            get { return _CheckoutDate; }
            set { _CheckoutDate = value; }
        }
    }
}

Im folgenden Beispiel wird der vorherige Verstoß behoben, indem der Typ DateTimeOffset durch den Typ DateTime ersetzt wird.

using System;
namespace Samples
{
    public class LibraryBook
    {
        private readonly string _Title;
        private DateTime _CheckoutDate;
        public LibraryBook(string title)
        {
            _Title = title;
        }
        public string Title
        {
            get { return _Title; }
        }
        public DateTime CheckoutDate
        {
            get { return _CheckoutDate; }
            set { _CheckoutDate = value; }
        }
    }
}

Siehe auch

Weitere Ressourcen

Portabilitätswarnungen

Ausrichten auf eine bestimmte .NET Framework-Version oder ein bestimmtes .NET Framework-Profil