次の方法で共有


プロバイダーが null でないことが AddProvider によってチェックされる

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() メソッドは例外をキャプチャし、何もしません。

null プロバイダーを AddProvider(ILoggerProvider) に渡していないことを確認してください。

影響を受ける API