IServiceProvider.GetRequiredService()IServiceProvider.GetService()有什么区别?

什么时候使用GetRequiredService()是一个更好的主意?

最佳答案

您几乎不需要调用这些方法,因为应尽可能使用构造函数注入(inject)。

在极少数情况下,例如工厂或动态实例化命令处理程序,您可以自己解决。

话虽如此,您应该使用GetRequiredService,而需要服务。如果未注册服务,它将引发异常。

另一侧的GetService用于可选的依赖项,当未注册此类服务时,它们仅会返回null

10-05 22:33