Éléments obsolètes dans la bibliothèque de classes .NET FrameworkWhat's obsolete in the .NET Framework class library

.NET change au fil du temps..NET 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 à mesure que la technologie qu’ils soutiennent est remplacée par une nouvelle technologie, et certaines méthodes sont remplacées par de nouvelles méthodes supérieures d’une certaine façon.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 superior in some way.

.NET Framework et le temps courant de course de langue s’efforcent de soutenir la compatibilité rétrograde (permettant aux applications qui ont été développées avec une version de .NET Framework de s’exécuter sur la prochaine version de .NET Framework)..NET Framework and the common language runtime strive to support backward compatibility (allowing applications that were developed with one version of .NET Framework to run on the next version of .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. Au lieu de cela, .NET indique qu’un type ou un membre de type ne doit plus être utilisé en le marquant comme obsolète ou déprécié.Instead, .NET 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. Cependant, le code existant qui utilise le type ou le membre continue à s’exécuter dans la nouvelle version de .NET.However, existing code that uses the type or member continues to run in the new version of .NET.

Notes

Les termes obsolètes et dépréciés ont le même sens lorsqu’ils sont appliqués aux types .NET et aux membres.The terms obsolete and deprecated have the same meaning when applied to .NET types and members.

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 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. 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 que l’application s’exécute avec .NET Framework 4.5.For example, suppose that you have an application named app1.exe that was compiled against the .NET Framework 3.5, but you want the application to run against the .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 dans notre exemple, vous créeriez un fichier de configuration nommé 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>
    

Pour cibler une version spécifique du cadre .NET, attribuez l’une des valeurs de chaîne suivantes à l’attribut version :To target a specific version of .NET Framework, assign one of the following string values to the version attribute:

Version du .NET Framework.NET Framework version Chaîne versionversion string
4.84.8 v4.0v4.0
4.7 (y compris 4.7.1 et 4.7.2)4.7 (including 4.7.1 and 4.7.2) 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
22.0 v2.0.50727v2.0.50727
1.11.1 v1.1.4322v1.1.4322
1.01.0 v1.0.3705v1.0.3705

API obsolètes pour .NET Framework 4.5 et versions ultérieuresObsolete APIs for .NET Framework 4.5 and later versions

API obsolètes pour les versions précédentesObsolete APIs for previous versions

Voir aussiSee also