次の方法で共有


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

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