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