Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
FromKeyedServicesAttribute.Key har ändrats från en icke-nullbar object till en nullbar object? för att stödja null-värden för okeyade tjänster och arvsscenarier.
Version lanserad
.NET 8
Tidigare beteende
FromKeyedServicesAttribute.Key deklarerades tidigare som en icke-nullbar object:
public object Key { get; }
Nytt beteende
Från och med .NET 8 deklareras FromKeyedServicesAttribute.Key nu som en nullable object?:
public object? Key { get; }
Ett null värde anger att det inte finns någon nyckel och att endast parametertypen används för att lösa tjänsten. Detta är användbart för implementeringar av beroendeinjektion som kräver ett explicit sätt att deklarera att parametern ska lösas för nonycklatjänster. Ett värde för null används också i fall av arv för att indikera att nyckeln ska ärvas från det överordnade området.
Typ av brytande ändring
Den här ändringen kan påverka källkompatibiliteten.
Orsak till ändring
Stöd har lagts till för nyckelade tjänster för att beteckna parametrar som onycklade. Den här ändringen gör det möjligt för utvecklare att uttryckligen ange när en parameter ska lösas utan en nyckel, vilket är särskilt användbart i scenarier där både nyckelbaserade och okeyed-tjänster registreras för samma typ.
Rekommenderad åtgärd
Justera all kod som använder FromKeyedServicesAttribute.Key för att hantera null-värden.