AddProvider 检查是否为非 null 提供程序

Microsoft.Extensions.Logging.LoggerFactory 通过 AddProvider(ILoggerProvider) 方法实现 ILoggerFactory。 不接受 null 提供程序,并且它将引发 ArgumentNullException

引入的版本

6.0 RC 1

旧行为

以前,AddProvider(ILoggerProvider) 不会对 provider 参数执行任何验证。 因此,该方法将 null 视为“有效”提供程序,并将其添加到提供程序集合中。

新行为

从 .NET 6 开始,不接受 null 提供程序,如果日志记录提供程序参数为 nullAddProvider(ILoggerProvider) 将引发 ArgumentNullException。 例如,以下代码引发 ArgumentNullException

var factory = new LoggerFactory();
((ILoggerFactory)factory).AddProvider(null));

中断性变更的类型

此项更改可能会影响源兼容性

更改原因

旧行为导致该类中的某些操作不必要地引发 NullReferenceException 异常。 例如,LoggerFactory.Dispose() 方法将捕获异常并不执行任何操作。

确保未向 AddProvider(ILoggerProvider) 传递 null 提供程序。

受影响的 API