Для активацииutilities.CreateInstance требуется поставщик, отличный от NULL
Теперь два ActivatorUtilities.CreateInstance метода вызывают ArgumentNullException исключение, если provider
параметр имеет значение null
.
Представленные версии
.NET 8( предварительная версия 1)
Прежнее поведение
Для null
параметра разрешено provider
значение. В некоторых случаях указанный тип по-прежнему был создан правильно.
Новое поведение
В provider
противном случае null
ArgumentNullException создается исключение.
Тип критического изменения
Причина изменения
Исправлена проверка параметров вместе с проблемами, связанными с конструктором, чтобы соответствовать целевой CreateInstanceцели. Методы CreateInstance()
имеют ненулевой provider
параметр, поэтому обычно предполагается, что null
поставщик не был разрешен.
Рекомендуемое действие
Передайте значение, отличное от NULL IServiceProvider для аргумента provider
. Если поставщик также реализует IServiceProviderIsService, с помощью этого можно получить аргументы конструктора.
Кроме того, если вашему сценарию не требуется внедрение зависимостей, так как IServiceProvidernull
используется Activator.CreateInstance вместо этого.
Затронутые API
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance<T>(IServiceProvider, Object[])
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider, Type, Object[])