Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
FromKeyedServicesAttribute.Key se ha cambiado de un valor que no acepta object valores NULL a un que acepta valores NULL object? para los servicios sin clave y los escenarios de herencia.
Versión introducida
.NET 8
Comportamiento anterior
Anteriormente, FromKeyedServicesAttribute.Key se declaraba como un tipo no anulable de object:
public object Key { get; }
Nuevo comportamiento
A partir de .NET 8, FromKeyedServicesAttribute.Key ahora se declara como un tipo object? anulable.
public object? Key { get; }
Un null valor indica que no hay ninguna clave y solo se usa el tipo de parámetro para resolver el servicio. Esto resulta útil para las implementaciones de inserción de dependencias que requieren una manera explícita de declarar que el parámetro se debe resolver para los servicios sin clave. También se usa un valor null con escenarios de herencia para indicar que la clave se debe heredar del ámbito padre.
Tipo de cambio disruptivo
Este cambio puede afectar a la compatibilidad de origen.
Motivo del cambio
Se añadió soporte para servicios con claves asociadas para anotar parámetros como no asociados a una clave. Este cambio permite a los desarrolladores indicar explícitamente cuándo se debe resolver un parámetro sin una clave, lo que resulta especialmente útil en escenarios en los que los servicios con clave y sin clave se registran para el mismo tipo.
Acción recomendada
Ajuste cualquier código que use FromKeyedServicesAttribute.Key para manejar null valores.