IServiceProvider.GetRequiredService()
和IServiceProvider.GetService()
有什么区别?
什么时候使用GetRequiredService()
是一个更好的主意?
最佳答案
您几乎不需要调用这些方法,因为应尽可能使用构造函数注入(inject)。
在极少数情况下,例如工厂或动态实例化命令处理程序,您可以自己解决。
话虽如此,您应该使用GetRequiredService
,而需要服务。如果未注册服务,它将引发异常。
另一侧的GetService
用于可选的依赖项,当未注册此类服务时,它们仅会返回null
。