Éléments obsolètes dans la bibliothèque de classes .NET FrameworkWhat's Obsolete in the .NET Framework Class Library

Le .NET Framework évolue.The .NET Framework changes over time. Chaque nouvelle version comporte de nouveaux types et membres de type qui fournissent de nouvelles fonctionnalités.Each new version adds new types and type members that provide new functionality. Les types existants et leurs membres évoluent aussi.Existing types and their members also change over time. Par exemple, certains types deviennent moins importants quand la technologie qu'ils prennent en charge est remplacée par une nouvelle, tandis que certaines méthodes sont remplacées par de nouvelles méthodes qui sont soit plus pratiques, soit plus complètes.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.

Le .NET Framework et le Common Language Runtime s'efforcent de prendre en charge une compatibilité descendante (ce qui permet aux applications développées avec une version du .NET Framework de fonctionner sur la version suivante).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). Il est donc difficile de simplement supprimer un type ou un membre de type.This makes it difficult to simply remove a type or a type member. C'est pourquoi le .NET Framework indique plutôt qu'un type ou un membre de type ne doit plus être utilisé en le marquant comme obsolète ou déprécié.Instead, the .NET Framework indicates that a type or a type member should no longer be used by marking it as obsolete or deprecated. Le fait de déprécier un type ou un membre implique de le marquer afin que les développeurs soient informés de sa future suppression et qu'ils aient le temps de réagir.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. Toutefois, le code existant qui utilise le type ou le membre en question continue à fonctionner dans la nouvelle version du .NET Framework.However, existing code that uses the type or member continues to run in the new version of the .NET Framework.

Note

Les termes obsolète et déprécié ont la même signification quand ils sont appliqués aux types et aux membres du .NET Framework.The terms obsolete and deprecated have the same meaning when applied to the types and members of the .NET Framework.

Attribut ObsoleteAttributeThe ObsoleteAttribute Attribute

Le .NET Framework indique qu'un type ou membre de type est obsolète en le marquant avec l'attribut ObsoleteAttribute.The .NET Framework indicates that a type or type member is obsolete by marking it with the ObsoleteAttribute attribute. L'application de cet attribut à un type ou membre indique que ce type ou membre sera supprimé dans une version ultérieure du .NET Framework sans casser le code compilé qui utilise ce membre.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.

En plus d'indiquer qu'un type ou un membre de type est obsolète, ObsoleteAttribute définit comment le compilateur gère le code source qui inclut ce type ou membre.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. Le compilateur peut compiler le code en émettant un message d'avertissement, ou il peut traiter l'utilisation du type ou du membre comme une erreur.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. Dans le premier cas, le code peut être compilé avec succès, mais un message d'avertissement indique que le type ou le membre est obsolète.In the first case, the code can successfully compile, but a warning message indicates that the type or member is obsolete. Dans le deuxième cas, la compilation échoue.In the second case, compilation fails.

Même si la compilation produit une erreur au lieu d'un message d'avertissement, ObsoleteAttribute n'affecte pas le comportement au moment de l'exécution.Even if compilation produces an error instead of a warning message, ObsoleteAttribute does not affect run-time behavior. Autrement dit, les applications qui utilisent le type ou le membre et qui ont été compilées avec succès s'exécuteront toujours correctement.That is, applications that use the type or member and that have compiled successfully will always run successfully. Seule une tentative de recompilation d'une application qui utilise le type ou le membre échoue.Only the attempt to recompile an application that uses the type or member fails.

Comment gérer des types et membres obsolètesHow to Handle Obsolete Types and Members

Quand vous mettez à niveau et recompilez du code existant, l'utilisation d'un type ou d'un membre obsolète qui génère un avertissement du compilateur dans votre application est parfaitement acceptable.When you upgrade and recompile existing code, using an obsolete type or member that produces a compiler warning in your application is perfectly acceptable. Toutefois, vous devez examiner le message d'avertissement du compilateur pour déterminer si vous devez modifier le code de votre application.However, you should review the compiler warning message to determine whether you should change your application code. Si le message ne pointe pas vers une alternative appropriée, vous devez faire l'une ou l'autre des opérations suivantes :If the message does not point to a suitable alternative, you should do either of the following:

  • Modifiez votre code en supprimant l'utilisation du type ou membre, si possible.Change your code by removing the use of the type or member, if possible.

    - ou --or-

  • Examinez la documentation de ce domaine technologique pour savoir que faire face à des éléments obsolètes.Review the documentation for this technology area to determine how to respond to the deprecation.

Vous pouvez choisir de ne pas recompiler le code existant avec une version ultérieure du .NET Framework.You may choose not to recompile existing code against a later version of the .NET Framework. À la place, vous pouvez spécifier la version du .NET Framework sur laquelle votre code compilé existant est exécuté.Instead, you can specify the version of the .NET Framework against which your existing compiled code runs. Supposons, par exemple, que vous possédiez une application nommée app1.exe qui a été compilée avec le .NET Framework 3.5.NET Framework 3.5, mais que vous souhaitiez que l'application s'exécute avec le .NET Framework 4.5.NET Framework 4.5.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. Ce processus implique les étapes suivantes :This requires the following steps:

  1. Créez un fichier de configuration pour votre fichier exécutable principal et nommez-le Nom_app.exe.config, où Nom_app est le nom du fichier exécutable de l’application.Create a configuration file for your main executable and name it appName.exe.config, where appName is the name of the application executable. Pour l'application nommée app1.exe de notre exemple, vous devez créer un fichier de configuration intitulé app1.exe.config.For the application named app1.exe in our example, you would create a configuration file named app1.exe.config.

  2. Ajoutez le code suivant au fichier de configuration.Add the following to the configuration file.

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

Le tableau suivant répertorie les valeurs de chaîne que vous pouvez assigner à l'attribut version pour cibler une version spécifique du .NET Framework.The following table lists the string values that you can assign to the version attribute to target a specific version of the .NET Framework.

Version du .NET Framework.NET Framework version Chaîne versionversion string
4.7 (avec 4.7.1)4.7 (including 4.7.1) v4.0v4.0
4.6 (y compris 4.6.1 et 4.6.2)4.6 (including 4.6.1 and 4.6.2) v4.0v4.0
4.5 (y compris 4.5.1 et 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

Listes des éléments obsolètes pour le .NET Framework 4.5 et 4.6Obsolete Lists for the .NET Framework 4.5 and 4.6

Types obsolètesObsolete Types

Membres obsolètesObsolete Members

Listes des éléments obsolètes pour les versions antérieuresObsolete Lists for Previous Versions

Types obsolètes dans le .NET Framework 4Obsolete Types in the .NET Framework 4

Membres obsolètes dans le .NET Framework 4Obsolete Members in the .NET Framework 4

Liste des éléments obsolètes pour le .NET Framework 3.5.NET Framework 3.5 Obsolete List

Liste des éléments obsolètes pour le .NET Framework 2.0.NET Framework 2.0 Obsolete List

Voir aussiSee Also

<supportedRuntime>, élément<supportedRuntime> Element