Partager via


FromKeyedServicesAttribute.Key peut être null

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.

Ajustez tout code qui utilise FromKeyedServicesAttribute.Key pour gérer les null valeurs.

API affectées