Udostępnij przez


Wartość FromKeyedServicesAttribute.Key może mieć wartość null

FromKeyedServicesAttribute.Key została zmieniona z typu nie null na typ nullable object?, aby obsługiwać wartość null dla usług bez kluczy oraz scenariuszy dziedziczenia.

Wersja wprowadzona

.NET 8

Poprzednie zachowanie

Wcześniej FromKeyedServicesAttribute.Key został zadeklarowany jako nienullowalny object:

public object Key { get; }

Nowe zachowanie

Począwszy od platformy .NET 8, FromKeyedServicesAttribute.Key jest teraz zadeklarowany jako dopuszczający object? do wartości null.

public object? Key { get; }

Wartość null wskazuje, że nie ma klucza, a tylko typ parametru jest używany do rozpoznawania usługi. Jest to przydatne w przypadku implementacji iniekcji zależności, które wymagają jawnego sposobu deklarowania, że parametr powinien zostać rozpoznany dla usług bez określonych kluczy. Wartość null jest również używana w scenariuszach dziedziczenia, wskazując, że klucz ma być dziedziczony z zakresu nadrzędnego.

Typ zmiany przełamującej

Ta zmiana może mieć wpływ na zgodność źródła.

Przyczyna zmiany

Dodano obsługę usług z kluczami, umożliwiając adnotowanie parametrów jako niekluczowych. Ta zmiana umożliwia deweloperom jawne wskazanie, kiedy należy rozpoznać parametr bez klucza, co jest szczególnie przydatne w scenariuszach, w których zarówno usługi kluczowane, jak i niekluczowe są rejestrowane dla tego samego typu.

Dostosuj dowolny kod, który używa FromKeyedServicesAttribute.Key, aby obsługiwać wartości null.

Interfejsy API, których dotyczy problem