ActivatorUtilities.CreateInstance vereist een niet-null-provider
Met de twee ActivatorUtilities.CreateInstance methoden wordt nu een ArgumentNullException uitzondering gegenereerd als de provider
parameter is null
.
Versie geïntroduceerd
.NET 8 Preview 1
Vorig gedrag
Er is een null
waarde toegestaan voor de provider
parameter. In sommige gevallen is het opgegeven type nog steeds correct gemaakt.
Nieuw gedrag
Wanneer provider
is null
, wordt er een ArgumentNullException uitzondering gegenereerd.
Type wijziging die fouten veroorzaken
Deze wijziging is een gedragswijziging.
Reden voor wijziging
We hebben de parametervalidatie samen met problemen met constructorkoppeling opgelost om overeen te komen met het beoogde doel van CreateInstance. De CreateInstance()
methoden hebben een niet-nullable provider
parameter, dus over het algemeen werd verwacht dat een null
provider niet was toegestaan.
Aanbevolen actie
Geef een niet-null-waarde IServiceProvider door voor het provider
argument. Als de provider ook implementeert, kunnen constructorargumenten IServiceProviderIsServicedaardoor worden verkregen.
Als voor uw scenario geen afhankelijkheidsinjectie is vereist, IServiceProvidernull
Activator.CreateInstance gebruikt u in plaats daarvan.
Betrokken API's
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance<T>(IServiceProvider, Object[])
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider, Type, Object[])