72 IServiceProvider.GetRequiredService()和之间有什么区别IServiceProvider.GetService()? 什么时候使用更好的主意GetRequiredService()? dependency-injection asp.net-core .net-core — 艺术基地 source
96 您几乎不需要调用这些方法,因为应尽可能使用构造函数注入。 在极少数情况下,例如工厂或动态实例化命令处理程序,您可以自己解决。 话虽如此,您应该GetRequiredService在需要服务的地方使用。如果未注册服务,它将引发异常。 GetService另一方面是用于可选的依赖项,null当没有注册此类服务时,它将仅返回。 — 曾 source 2 你应该注意的是,如果你使用的是外部DI供应商,这个语义可以改变一点点,例如StructureMap两个函数的行为不同:github.com/structuremap/... — rekiem87
46 区别在于,如果找不到服务,GetService<T>()则会返回null。GetRequiredService<T>()抛出一个InvalidOperationException代替。 — chel source