AddProvider 检查是否为非 null 提供程序
Microsoft.Extensions.Logging.LoggerFactory 通过 AddProvider(ILoggerProvider)
方法实现 ILoggerFactory。 不接受 null
提供程序,并且它将引发 ArgumentNullException。
引入的版本
6.0 RC 1
旧行为
以前,AddProvider(ILoggerProvider) 不会对 provider
参数执行任何验证。 因此,该方法将 null
视为“有效”提供程序,并将其添加到提供程序集合中。
新行为
从 .NET 6 开始,不接受 null
提供程序,如果日志记录提供程序参数为 null
,AddProvider(ILoggerProvider) 将引发 ArgumentNullException。 例如,以下代码引发 ArgumentNullException:
var factory = new LoggerFactory();
((ILoggerFactory)factory).AddProvider(null));
中断性变更的类型
此项更改可能会影响源兼容性。
更改原因
旧行为导致该类中的某些操作不必要地引发 NullReferenceException 异常。 例如,LoggerFactory.Dispose() 方法将捕获异常并不执行任何操作。
建议的操作
确保未向 AddProvider(ILoggerProvider) 传递 null
提供程序。
受影响的 API
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈