Поделиться через


Для активацииutilities.CreateInstance требуется поставщик, отличный от NULL

Теперь два ActivatorUtilities.CreateInstance метода вызывают ArgumentNullException исключение, если provider параметр имеет значение null.

Представленные версии

.NET 8( предварительная версия 1)

Прежнее поведение

Для null параметра разрешено provider значение. В некоторых случаях указанный тип по-прежнему был создан правильно.

Новое поведение

В provider противном случае nullArgumentNullException создается исключение.

Тип критического изменения

Это изменение поведения.

Причина изменения

Исправлена проверка параметров вместе с проблемами, связанными с конструктором, чтобы соответствовать целевой CreateInstanceцели. Методы CreateInstance() имеют ненулевой provider параметр, поэтому обычно предполагается, что null поставщик не был разрешен.

Передайте значение, отличное от NULL IServiceProvider для аргумента provider . Если поставщик также реализует IServiceProviderIsService, с помощью этого можно получить аргументы конструктора.

Кроме того, если вашему сценарию не требуется внедрение зависимостей, так как IServiceProvidernullиспользуется Activator.CreateInstance вместо этого.

Затронутые API

См. также