ActivatorUtilities.CreateInstance 需要非空提供者

這兩ActivatorUtilities.CreateInstance種方法現在會在ArgumentNullException參數為provider時擲回null例外狀況。

推出的版本

.NET 8 Preview 1

先前的行為

已允許null值用於provider參數。 在某些情況下,指定的類型仍然正確地建立。

新行為

當 provider 為 null 時,ArgumentNullException 會拋出例外。

破壞性變更的類型

此變更為行為變更。

變更的原因

我們已修正參數驗證以及建構函式比對問題,以符合的預期用途。 方法 CreateInstance() 具有不可為 Null 的參數 provider,因此通常不允許使用提供者 null。

提供非空的 IServiceProvider 作為 provider 參數。 如果提供者也實作 IServiceProviderIsService,則建構函式自變數可以透過該自變數取得。

或者,如果您的案例不需要相依性插入,因為 IServiceProvider 是 null,請改用 Activator.CreateInstance 。

受影響的 API

另請參閱