ActivatorUtilities.CreateInstance に null 以外のプロバイダーが必要になる
provider
パラメーターが null
の場合、2 つの ActivatorUtilities.CreateInstance メソッドで ArgumentNullException の例外がスローされるようになりました。
導入されたバージョン
.NET 8 Preview 1
以前の動作
provider
パラメーターに null
値が許可されていました。 場合によっては、指定した型がまだ正しく作成されていました。
新しい動作
provider
が null
のときに、ArgumentNullException の例外がスローされます。
破壊的変更の種類
この変更は、動作変更です。
変更理由
CreateInstance の用途に合わせて、パラメーター検証とともに、コンストラクターの一致に関する問題を修正しました。 CreateInstance()
メソッドには null 非許容の provider
パラメーターがあるため、一般に null
プロバイダーが許可されていないと想定されていました。
推奨アクション
provider
引数に null 以外の IServiceProvider を渡します。 プロバイダーで IServiceProviderIsService も実装される場合は、それを通じてコンストラクター引数を取得できます。
または、IServiceProvider が null
であるため、シナリオで依存関係の挿入が必要ない場合は、代わりに Activator.CreateInstance を使用します。
影響を受ける API
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance<T>(IServiceProvider, Object[])
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider, Type, Object[])
こちらもご覧ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET