Veraltete Elemente der .NET Framework-Klassenbibliothek

.NET Framework hat sich im Laufe der Zeit verändert. Jede neue Version enthält neue Typen und Typmember, die neue Funktionen bieten. Vorhandene Typen und deren Member haben sich im Laufe der Zeit ebenfalls verändert. Einige Typen haben z. B. an Bedeutung verloren, da die von ihnen unterstützte Technologie durch eine neue Technologie ersetzt wurde, und einige Methoden wurden von neueren Methoden abgelöst, weil sie den älteren überlegen sind.

.NET Framework und die Common Language Runtime sollen Abwärtskompatibilität unterstützen (dadurch können Anwendungen, die mit einer bestimmten Version von .NET Framework entwickelt wurden, unter der nächsten Version von .NET Framework ausgeführt werden). Dadurch wird es schwierig, einfach einen Typ oder einen Typmember zu entfernen. Stattdessen wird in .NET Framework angegeben, dass ein Typ oder Typmember nicht mehr verwendet werden sollte, indem er als veraltet markiert wird. Indem ein Typ oder Member als veraltet markiert wurde, wussten Entwickler, dass er irgendwann nicht mehr zur Verfügung stehen würde, und hatten Zeit, darauf zu reagieren. Allerdings wird vorhandener Code, in dem der Typ oder Member verwendet wird, weiterhin in der neuen Version von .NET ausgeführt.

Hinweis

Wenn eine API in .NET (Core) als veraltet markiert wird, bedeutet das nicht unbedingt, dass die API entfernt wird. Weitere Informationen finden Sie unter Entfernen von APIs in .NET.

Das ObsoleteAttribute-Attribut

.NET Framework gibt an, dass ein Typ oder ein Typmember veraltet ist, indem er mit dem ObsoleteAttribute-Attribut markiert wird. Das Anwenden des Attributs auf einen Typ oder Member gibt an, dass der Typ oder Member in einer künftigen Version entfernt wird, ohne dass kompilierter Code in Mitleidenschaft gezogen wird, der diesen Member verwendet.

Neben der Angabe, dass ein Typ oder Typmember veraltet ist, wird mit ObsoleteAttribute definiert, wie der Compiler Quellcode behandelt, der den Typ oder Member enthält. Der Compiler kann den Code kompilieren, aber eine Warnmeldung ausgeben, oder er kann die Verwendung des Typs oder Members als Fehler behandeln. Im ersten Fall kann der Code kompiliert werden, doch eine Warnmeldung zeigt an, dass der Typ oder der Member veraltet ist. Im zweiten Fall schlägt die Kompilierung fehl.

Auch wenn bei einer Kompilierung keine Warnmeldung angezeigt wird, sondern ein Fehler auftritt, wirkt sich ObsoleteAttribute nicht auf das Laufzeitverhalten aus. Das heißt, dass Anwendungen, die den Typ oder den Member verwenden und die kompiliert wurden, immer ausgeführt werden. Nur der Versuch der erneuten Kompilierung einer Anwendung, die den Typ oder Member verwendet, schlägt fehl.

Behandeln von veralteten Typen und Membern

Wenn Sie vorhandenen Code aktualisieren und neu kompilieren, kann ein veralteter Typ oder Member verwendet werden, durch den eine Compilerwarnung in der Anwendung erzeugt wird. Lesen Sie jedoch die Compilerwarnungsmeldung, um festzustellen, ob der Anwendungscode geändert werden sollte. Wenn in der Meldung nicht auf eine geeignete Alternative hingewiesen wird, führen Sie einen der folgenden Schritte aus:

  • Ändern Sie, falls möglich, den Code durch Entfernen der Verwendung des Typs oder des Members.

    - oder -

  • Lesen Sie die Dokumentation für diesen Technologiebereich, um zu bestimmen, wie darauf reagiert werden soll, dass die Komponente veraltet ist.

Sie können sich dazu entscheiden, keinen vorhandenen Code für eine höhere Version von .NET Framework neu zu kompilieren. Stattdessen können Sie die Version von .NET Framework angeben, für die der vorhandene kompilierte Code ausgeführt wird. Beispiel: Angenommen, Sie besitzen eine für .NET Framework 3.5 kompilierte Anwendung mit dem Namen app1.exe und möchten, dass diese Anwendung für .NET Framework 4.5 ausgeführt wird. Gehen Sie dazu folgendermaßen vor:

  1. Erstellen Sie eine Konfigurationsdatei für die zentrale ausführbare Datei, und nennen Sie diese appName.exe.config, wobei appName der Name der ausführbaren Datei der Anwendung ist. Für die Anwendung mit dem Namen app1.exe in diesem Beispiel würden Sie eine Konfigurationsdatei mit dem Namen app1.exe.config erstellen.

  2. Fügen Sie der Konfigurationsdatei Folgendes hinzu:

    <configuration>
       <startup>
          <supportedRuntime version="v4.0" />
       </startup>
    </configuration>
    

Um eine bestimmte Version von .NET Framework als Ziel zu verwenden, weisen Sie dem version-Attribut einen der folgenden Zeichenfolgenwerte zu:

.NET Framework-Version version-Zeichenfolge
4.8 (einschließlich 4.8.1) v4.0
4.7 (einschließlich 4.7.1 und 4.7.2) v4.0
4.6 (einschließlich 4.6.1 und 4.6.2) v4.0
4.5 (inklusive 4.5.1 und 4.5.2) v4.0
4 v4.0
3.5 v2.0.50727
2.0 v2.0.50727
1.1 v1.1.4322
1.0 v1.0.3705

Veraltete APIs für .NET Framework 4.5 und höhere Versionen

Veraltete APIs für frühere Versionen

Siehe auch