Когда GetRequiredService должен использовать вместо GetService?

В чем разница между GetRequiredService() и GetService().

При использовании GetRequiredService() лучше идея?

Ответы

Ответ 1

Вам редко приходится обращаться к этим методам вообще, так как вы должны использовать инсталляцию конструктора там, где это возможно.

В редких случаях, например, на фабриках или для динамического создания экземпляров обработчиков команд, вы можете решить эту проблему самостоятельно.

При этом вы должны использовать GetRequiredService, где вам требуется услуга. Он будет генерировать исключение, когда служба не будет зарегистрирована.

GetService с другой стороны для необязательных зависимостей, которые просто вернут null, если такая служба не зарегистрирована.

Ответ 2

Разница в том, что GetService<T>() возвращает null, если он не может найти службу. GetRequiredService<T>() вместо этого InvalidOperationException.