ActivatorUtilities.CreateInstance に null 以外のプロバイダーが必要になる

provider パラメーターが null の場合、2 つの ActivatorUtilities.CreateInstance メソッドで ArgumentNullException の例外がスローされるようになりました。

導入されたバージョン

.NET 8 Preview 1

以前の動作

provider パラメーターに null 値が許可されていました。 場合によっては、指定した型がまだ正しく作成されていました。

新しい動作

providernull のときに、ArgumentNullException の例外がスローされます。

破壊的変更の種類

この変更は、動作変更です。

変更理由

CreateInstance の用途に合わせて、パラメーター検証とともに、コンストラクターの一致に関する問題を修正しました。 CreateInstance() メソッドには null 非許容の provider パラメーターがあるため、一般に null プロバイダーが許可されていないと想定されていました。

provider 引数に null 以外の IServiceProvider を渡します。 プロバイダーで IServiceProviderIsService も実装される場合は、それを通じてコンストラクター引数を取得できます。

または、IServiceProvidernull であるため、シナリオで依存関係の挿入が必要ない場合は、代わりに Activator.CreateInstance を使用します。

影響を受ける API

こちらもご覧ください