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) 提供程序。

受影响的 API