Éléments obsolètes dans la bibliothèque de classes .NET Framework

.NET Framework a évolué avec le temps. Chaque nouvelle version comporte de nouveaux types et membres de type qui fournissent de nouvelles fonctionnalités. Les types existants et leurs membres ont aussi changé dans le temps. Par exemple, certains types sont devenus moins importants quand la technologie qu’ils prennent en charge a été remplacée par une nouvelle, tandis que certaines méthodes ont été remplacées par de nouvelles méthodes plus performantes.

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). Il est donc difficile de simplement supprimer un type ou un membre de type. 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é. En rendant obsolète un type ou un membre, les développeurs étaient conscients qu’il disparaîtrait et avaient le temps de répondre à sa suppression. Toutefois, le code existant qui utilise le type ou le membre en question continue à fonctionner dans la nouvelle version de .NET.

Notes

Dans .NET (Core), l’obsolescence d’une API ne signifie pas nécessairement que l’API sera supprimée. Pour plus d’informations, consultez Suppression d’API dans .NET.

Attribut ObsoleteAttribute

.NET Framework indique qu’un type ou membre de type est obsolète en le marquant avec l’attribut ObsoleteAttribute. L’application de cet attribut à un type ou membre indique que ce type ou membre sera supprimé dans une version ultérieure sans casser le code compilé qui utilise ce membre.

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. 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. 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. Dans le deuxième cas, la compilation échoue.

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. 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. Seule une tentative de recompilation d'une application qui utilise le type ou le membre échoue.

Comment gérer des types et membres obsolètes

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 acceptable. Toutefois, vous devez examiner le message d'avertissement du compilateur pour déterminer si vous devez modifier le code de votre application. Si le message ne pointe pas vers une alternative appropriée, vous devez faire l'une ou l'autre des opérations suivantes :

  • Modifiez votre code en supprimant l'utilisation du type ou membre, si possible.

    -ou-

  • Examinez la documentation de ce domaine technologique pour savoir que faire face à des éléments obsolètes.

Vous pouvez choisir de ne pas recompiler le code existant avec une version ultérieure de .NET Framework. À la place, vous pouvez spécifier la version de .NET Framework sur laquelle votre code compilé existant est exécuté. Supposez, par exemple, que vous avez une application nommée app1.exe qui a été compilée avec .NET Framework 3.5, mais que vous souhaitez qu’elle s’exécute avec .NET Framework 4.5. Ce processus implique les étapes suivantes :

  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. Pour l’application nommée app1.exe de notre exemple, vous devez créer un fichier de configuration nommé app1.exe.config.

  2. Ajoutez le code suivant au fichier de configuration.

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

Pour cibler une version spécifique du .NET Framework, attribuez l’une des valeurs de chaîne suivantes à l’attribut version :

Version du .NET Framework Chaîne version
4.8 (y compris 4.8.1) v4.0
4.7 (y compris 4.7.1 et 4.7.2) v4.0
4.6 (y compris 4.6.1 et 4.6.2) v4.0
4.5 (y compris 4.5.1 et 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

API obsolètes pour .NET Framework 4.5 et versions ultérieures

API obsolètes pour les versions antérieures

Voir aussi