AddProvider überprüft auf Nicht-NULL-Anbieter

Microsoft.Extensions.Logging.LoggerFactory implementiert ILoggerFactory mit einer AddProvider(ILoggerProvider)-Methode. null-Anbieter werden nicht akzeptiert und führen zum Auslösen einer ArgumentNullException.

Eingeführt in Version

6.0 RC 1

Vorheriges Verhalten

Bisher hat AddProvider(ILoggerProvider) keine Validierung des Arguments provider durchgeführt. Daher hat die Methode null als „gültigen“ Anbieter betrachtet und der Auflistung von Anbietern hinzugefügt.

Neues Verhalten

Ab .NET 6 werden null-Anbieter nicht akzeptiert und AddProvider(ILoggerProvider) löst eine ArgumentNullException aus, wenn das Argument für den Protokollierungsanbieter null ist. Der folgende Code löst z. B. eine ArgumentNullException aus:

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

Typ des Breaking Changes

Diese Änderung kann sich auf die Quellkompatibilität auswirken.

Grund für die Änderung

Das vorherige Verhalten führte dazu, dass einige Vorgänge innerhalb der Klasse unnötigerweise Ausnahmen vom Typ NullReferenceException auslösten. Die Methode LoggerFactory.Dispose() beispielsweise erfasst die Ausnahme und unternimmt nichts.

Stellen Sie sicher, dass Sie keinen null-Anbieter an AddProvider(ILoggerProvider) übergeben.

Betroffene APIs