Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
FromKeyedServicesAttribute.Key a été modifié de non annulable object à nullable object? pour prendre en charge les valeurs nulles pour les services non clés et les scénarios d’héritage.
Version introduite
.NET 8
Comportement précédent
Auparavant, FromKeyedServicesAttribute.Key était déclaré comme non nul object :
public object Key { get; }
Nouveau comportement
À compter de .NET 8, FromKeyedServicesAttribute.Key est désormais déclaré comme nullable object?:
public object? Key { get; }
Une null valeur indique qu’il n’existe aucune clé et que seul le type de paramètre est utilisé pour résoudre le service. Cela est utile pour les implémentations d’injection de dépendances qui nécessitent un moyen explicite de déclarer que le paramètre doit être résolu pour les services non clés. Une null valeur est également utilisée avec des scénarios d’héritage pour indiquer que la clé doit être héritée de l’étendue parente.
Type de changement cassant
Cette modification peut affecter la compatibilité de la source.
Raison de la modification
La prise en charge des services identifiés par une clé a été ajoutée pour permettre d'annoter les paramètres comme non identifiés par une clé. Cette modification permet aux développeurs d’indiquer explicitement quand un paramètre doit être résolu sans clé, ce qui est particulièrement utile dans les scénarios où les services clés et non clés sont inscrits pour le même type.
Action recommandée
Ajustez tout code qui utilise FromKeyedServicesAttribute.Key pour gérer les null valeurs.