AddProvider проверяет, что поставщик не поддерживает NULL
Microsoft.Extensions.Logging.LoggerFactory реализует ILoggerFactory с помощью метода AddProvider(ILoggerProvider)
. Поставщики со значением null
не принимаются и приводят к созданию исключения ArgumentNullException.
Представленные версии
6.0 RC 1
Прежнее поведение
Ранее AddProvider(ILoggerProvider) не выполнял никакой проверки для аргумента provider
. Поэтому метод считал "допустимым" поставщиком значение null
и добавлял его в коллекцию поставщиков.
Новое поведение
Начиная с .NET 6 поставщики со значением null
не принимаются и AddProvider(ILoggerProvider) создает исключение ArgumentNullException, если аргумент поставщика ведения журнала имеет значение null
. Например, следующий код создает исключение ArgumentNullException:
var factory = new LoggerFactory();
((ILoggerFactory)factory).AddProvider(null));
Тип критического изменения
Это изменение может повлиять на совместимость исходного кода.
Причина изменения
Прежнее поведение приводило к тому, что некоторые операции в классе создавали ненужные исключения NullReferenceException. Например, метод LoggerFactory.Dispose() перехватывает исключение и не выполняет никаких действий.
Рекомендуемое действие
Убедитесь, что вы не передаете значение null
в качестве поставщика AddProvider(ILoggerProvider).