Veraltete Elemente in der .NET Framework-KlassenbibliothekWhat's Obsolete in the .NET Framework Class Library

.NET Framework unterliegt im Laufe der Zeit Änderungen.The .NET Framework changes over time. Jede neue Version erhält neue Typen und Typmember, die neue Funktionen bieten.Each new version adds new types and type members that provide new functionality. Vorhandene Typen und deren Member werden im Laufe der Zeit ebenfalls geändert.Existing types and their members also change over time. Einige Typen verlieren z. B. an Bedeutung, da die von ihnen unterstützte Technologie durch eine neue Technologie ersetzt wird, und einige Methoden werden von neueren Methoden abgelöst, die entweder benutzerfreundlicher sind oder über einen größeren Funktionsumfang verfügen.For example, some types become less important as the technology they support is replaced by a new technology, and some methods are superseded by newer methods that are either more convenient or more full-featured.

.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).The .NET Framework and the common language runtime strive to support backward compatibility (allowing applications that were developed with one version of the .NET Framework to run on the next version of the .NET Framework). Dadurch wird es schwierig, einfach einen Typ oder einen Typmember zu entfernen.This makes it difficult to simply remove a type or a type member. Stattdessen gibt .NET Framework an, dass ein Typ oder Typmember nicht mehr verwendet werden sollte, indem er als veraltet markiert wird.Instead, the .NET Framework indicates that a type or a type member should no longer be used by marking it as obsolete or deprecated. Ein veralteter Typ oder Member muss entsprechend markiert werden, damit Entwickler Bescheid wissen, dass er entfernt werden soll und die Zeit haben, auf das Entfernen des Typs zu reagieren.Deprecating a type or a member involves marking it so that developers are aware it will go away and have time to respond to its removal. Allerdings wird vorhandener Code, in dem der Typ oder Member verwendet wird, weiterhin in der neuen Version von .NET Framework ausgeführt.However, existing code that uses the type or member continues to run in the new version of the .NET Framework.

Hinweis

Die Begriffe veraltet und nicht mehr aktuell haben die gleiche Bedeutung, wenn sie in Bezug auf die Typen und Member von .NET Framework angewendet werden.The terms obsolete and deprecated have the same meaning when applied to the types and members of the .NET Framework.

Das ObsoleteAttribute-AttributThe ObsoleteAttribute Attribute

.NET Framework gibt an, dass ein Typ oder ein Typmember veraltet ist, indem er mit dem ObsoleteAttribute-Attribut markiert wird.The .NET Framework indicates that a type or type member is obsolete by marking it with the ObsoleteAttribute attribute. Das Anwenden des Attributs auf einen Typ oder Member gibt an, dass der Typ oder Member in einer künftigen Version von .NET Framework entfernt wird, ohne dass kompilierter Code in Mitleidenschaft gezogen wird, der diesen Member verwendet.Applying the attribute to a type or member indicates that that type or member will be removed in some future version of the .NET Framework without breaking compiled code that uses that member.

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.In addition to indicating that a type or a type member is obsolete, ObsoleteAttribute defines how the compiler handles source code that includes that type or member. Der Compiler kann den Code kompilieren, aber eine Warnmeldung ausgeben, oder er kann die Verwendung des Typs oder Members als Fehler behandeln.The compiler can compile the code but emit a warning message, or it can treat the use of the type or member as an error. Im ersten Fall kann der Code kompiliert werden, doch eine Warnmeldung zeigt an, dass der Typ oder der Member veraltet ist.In the first case, the code can successfully compile, but a warning message indicates that the type or member is obsolete. Im zweiten Fall schlägt die Kompilierung fehl.In the second case, compilation fails.

Auch wenn bei einer Kompilierung keine Warnmeldung angezeigt wird, sondern ein Fehler auftritt, wirkt sich ObsoleteAttribute nicht auf das Laufzeitverhalten aus.Even if compilation produces an error instead of a warning message, ObsoleteAttribute does not affect run-time behavior. Das heißt, dass Anwendungen, die den Typ oder den Member verwenden und die kompiliert wurden, immer ausgeführt werden.That is, applications that use the type or member and that have compiled successfully will always run successfully. Nur der Versuch der erneuten Kompilierung einer Anwendung, die den Typ oder Member verwendet, schlägt fehl.Only the attempt to recompile an application that uses the type or member fails.

Behandeln von veralteten Typen und MembernHow to Handle Obsolete Types and Members

Wenn Sie vorhandenen Code aktualisieren und neu kompilieren, kann ohne weiteres ein veralteter Typ oder Member verwendet werden, durch den eine Compilerwarnung in der Anwendung erzeugt wird.When you upgrade and recompile existing code, using an obsolete type or member that produces a compiler warning in your application is perfectly acceptable. Lesen Sie jedoch die Compilerwarnungsmeldung, um festzustellen, ob der Anwendungscode geändert werden sollte.However, you should review the compiler warning message to determine whether you should change your application code. Wenn in der Meldung nicht auf eine geeignete Alternative hingewiesen wird, führen Sie einen der folgenden Schritte aus:If the message does not point to a suitable alternative, you should do either of the following:

  • Ändern Sie, falls möglich, den Code durch Entfernen der Verwendung des Typs oder des Members.Change your code by removing the use of the type or member, if possible.

    - oder - -or-

  • Lesen Sie die Dokumentation für diesen Technologiebereich, um zu bestimmen, wie darauf reagiert werden soll, dass die Komponente veraltet ist.Review the documentation for this technology area to determine how to respond to the deprecation.

Sie können sich dazu entscheiden, keinen vorhandenen Code für eine höhere Version von .NET Framework neu zu kompilieren.You may choose not to recompile existing code against a later version of the .NET Framework. Stattdessen können Sie die Version von .NET Framework angeben, für die der vorhandene kompilierte Code ausgeführt wird.Instead, you can specify the version of the .NET Framework against which your existing compiled code runs. Beispiel: Angenommen, Sie besitzen eine Anwendung mit dem Namen "app1.exe", die für .NET Framework 3,5.NET Framework 3.5 kompiliert wurde, doch Sie möchten, dass die Anwendung für .NET Framework 4.5.NET Framework 4.5 ausgeführt wird.For example, suppose that you have an application named app1.exe that was compiled against the .NET Framework 3,5.NET Framework 3.5, but you want the application to run against the .NET Framework 4.5.NET Framework 4.5. Gehen Sie dazu folgendermaßen vor:This requires the following steps:

  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.Create a configuration file for your main executable and name it appName.exe.config, where appName is the name of the application executable. Für die Anwendung mit dem Namen "app1.exe" in diesem Beispiel würden Sie eine Konfigurationsdatei mit dem Namen "app1.exe.config" erstellen.For the application named app1.exe in our example, you would create a configuration file named app1.exe.config.

  2. Fügen Sie der Konfigurationsdatei Folgendes hinzu:Add the following to the configuration file.

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

In der folgenden Tabelle sind die Zeichenfolgenwerte aufgeführt, die Sie dem version-Attribut zuweisen können, um eine bestimmte Version von .NET Framework als Zielversion festzulegen.The following table lists the string values that you can assign to the version attribute to target a specific version of the .NET Framework.

.NET Framework-Version.NET Framework version version-Zeichenfolgeversion string
4.7 (einschließlich 4.7.1)4.7 (including 4.7.1) v4.0v4.0
4.6 (einschließlich 4.6.1 und 4.6.2)4.6 (including 4.6.1 and 4.6.2) v4.0v4.0
4.5 (inklusive 4.5.1 und 4.5.2)4.5 (including 4.5.1 and 4.5.2) v4.0v4.0
44 v4.0v4.0
3.53.5 v2.0.50727v2.0.50727
2.02.0 v2.0.50727v2.0.50727
1.11.1 v1.1.4322v1.1.4322
1.01.0 v1.0.3705v1.0.3705

Listen mit veralteten Komponenten für .NET Framework 4.5 und 4.6Obsolete Lists for the .NET Framework 4.5 and 4.6

Veraltete TypenObsolete Types

Veraltete MemberObsolete Members

Listen mit veralteten Komponenten für frühere VersionenObsolete Lists for Previous Versions

Veraltete Typen in .NET Framework 4Obsolete Types in the .NET Framework 4

Veraltete Member in .NET Framework 4Obsolete Members in the .NET Framework 4

Liste veralteter Elemente in .NET Framework 3.5.NET Framework 3.5 Obsolete List

Liste veralteter Elemente in .NET Framework 2.0.NET Framework 2.0 Obsolete List

Siehe auchSee Also

<supportedRuntime> Element<supportedRuntime> Element