Fonctionnalités Windows Forms obsolètes dans .NET 7+

À compter de .NET 7, certaines API Windows Forms sont marquées comme obsolètes (ou produisent un avertissement) avec des ID de diagnostic personnalisés du format WFDEVXXX.

Si vous recevez des avertissements ou rencontrez des erreurs de build en raison de l’utilisation d'une API obsolète, suivez les conseils spécifiques fournis pour l’ID de diagnostic répertorié dans la section Référence. Les avertissements ou les erreurs liés à ces obsolescences ne peuvent pas être supprimés à l’aide de l’ID (CS0618) de diagnostic standard pour les types ou membres obsolètes ; utilisez plutôt la valeur d’ID de diagnostic WFDEVXXX personnalisé. Pour plus d’informations, consultez Supprimer des avertissements.

Référence

Le tableau suivant fournit un index pour les WFDEVXXX obsoletions et les avertissements dans .NET 7+.

ID de diagnostic Avertissement ou erreur Description
WFDEV001 Avertissement Le cast vers/depuis IntPtr n’est pas sécurisé. Utilisez WParamInternal, LParamInternal ou ResultInternal à la place.
WFDEV002 Avertissement/erreur System.Windows.Forms.DomainUpDown.DomainUpDownAccessibleObject n’est plus utilisé pour fournir une prise en charge accessible des contrôles DomainUpDown. Utilisez AccessibleObject à la place.
WFDEV003 Avertissement System.Windows.Forms.DomainUpDown.DomainItemAccessibleObject n’est plus utilisé pour fournir une prise en charge accessible des éléments DomainUpDown. Utilisez AccessibleObject à la place.

Supprimer les avertissements

Nous vous recommandons d’utiliser une solution de contournement disponible dans la mesure du possible. Toutefois, si vous ne pouvez pas modifier votre code, vous pouvez supprimer les avertissements via une directive #pragma ou un paramètre de projet <NoWarn>. Si vous devez utiliser les API obsolètes et que le diagnostic WFDEVXXX ne s’affiche pas comme une erreur, vous pouvez supprimer l’avertissement dans le code ou dans votre Fichier projet.

Pour supprimer les avertissements dans le code :

// Disable the warning.
#pragma warning disable WFDEV001

// Code that uses obsolete API.
//...

// Re-enable the warning.
#pragma warning restore WFDEV001

Pour supprimer les avertissements dans un fichier projet :

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   <TargetFramework>net7.0</TargetFramework>
   <!-- NoWarn below suppresses WFDEV001 project-wide -->
   <NoWarn>$(NoWarn);WFDEV001</NoWarn>
   <!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
   <NoWarn>$(NoWarn);WFDEV001</NoWarn>
   <NoWarn>$(NoWarn);WFDEV003</NoWarn>
   <!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
   <NoWarn>$(NoWarn);WFDEV001;WFDEV003</NoWarn>
  </PropertyGroup>
</Project>

Notes

La suppression des avertissements de cette façon désactive uniquement les avertissements d’obsolescence que vous avez spécifiés. Cela ne désactive pas les autres avertissements, y compris les avertissements d’obsolescence avec des ID de diagnostic différents.

Voir aussi