CA1903 : Utiliser uniquement l'API à partir du Framework cible
Élément | Valeur |
---|---|
ID de la règle | CA1903 |
Category | Microsoft.Portability |
Modification avec rupture | Cassant : en cas de déclenchement par rapport à la signature d’un membre ou type visible en externe. Non cassant : en cas de déclenchement dans le corps d’une méthode. |
Cause
Un membre ou type utilise un membre ou type qui a été introduit dans un Service Pack qui ne figurait pas dans la version cible de .Net Framework du projet.
Notes
Cette règle est déconseillée. Pour plus d’informations, consultez Règles dépréciées.
Description de la règle
Les nouveaux membres et types ont été inclus dans .NET Framework 2.0 Service Pack 1 et 2, .NET Framework 3.0 Service Pack 1 et 2 et .NET Framework 3.5 Service Pack 1. Les projets qui ciblent les principales versions du .NET Framework peuvent involontairement adopter des dépendances vis-à-vis de ces nouvelles API. Pour éviter ces dépendances, cette règle se déclenche lors de l’utilisation de tous les nouveaux membres et types qui n’étaient pas inclus par défaut avec la version cible de .Net Framework du projet.
Dépendances de la version cible de .Net Framework et du Service Pack
Élément | Valeur |
---|---|
Quand la version cible de .Net Framework est : | Se déclenche lors de l’utilisation des membres introduits dans |
.NET Framework 2.0 | .NET Framework 2.0 SP1, .NET Framework 2.0 SP2 |
.NET Framework 3.0 | .NET Framework 2.0 SP1, .NET Framework 2.0 SP2, .NET Framework 3.0 SP1, .NET Framework 3.0 SP2 |
.NET Framework 3.5 | .NET Framework 3.5 SP1 |
.NET Framework 4 | N/A |
Pour modifier la version cible de .Net Framework d’un projet, consultez Guide pratique pour cibler une version de .NET.
Comment corriger les violations
Pour supprimer la dépendance vis-à-vis du Service Pack, supprimez toutes les utilisations du nouveau membre ou type. S’il s’agit d’une dépendance délibérée, supprimez l’avertissement ou désactivez cette règle.
Quand supprimer les avertissements
Ne supprimez pas un avertissement issu de cette règle s’il ne s’agit pas d’une dépendance délibérée vis-à-vis du Service Pack spécifié. Dans ce cas, votre application risque de ne pas s’exécuter sur les systèmes sur lesquels ce Service Pack n’est pas installé. Supprimez l’avertissement ou désactivez cette règle s’il s’agit d’une dépendance délibérée.
Exemple
L’exemple suivant montre une classe qui utilise le type DateTimeOffset uniquement disponible dans .NET 2.0 Service Pack 1. Cet exemple nécessite que .NET Framework 2.0 ait été sélectionné dans la liste déroulante de la version cible de .Net Framework dans les propriétés du projet.
using System;
namespace Samples
{
public class LibraryBook
{
private readonly string _Title;
private DateTimeOffset _CheckoutDate; // Violates this rule
public LibraryBook(string title)
{
_Title = title;
}
public string Title
{
get { return _Title; }
}
public DateTimeOffset CheckoutDate // Violates this rule
{
get { return _CheckoutDate; }
set { _CheckoutDate = value; }
}
}
}
L’exemple suivant corrige la violation décrite précédemment en remplaçant les utilisations du type DateTimeOffset par le type DateTime.
using System;
namespace Samples
{
public class LibraryBook
{
private readonly string _Title;
private DateTime _CheckoutDate;
public LibraryBook(string title)
{
_Title = title;
}
public string Title
{
get { return _Title; }
}
public DateTime CheckoutDate
{
get { return _CheckoutDate; }
set { _CheckoutDate = value; }
}
}
}
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour