AddSingleton, например, добавляет объект синглтон на уровне всего приложения. Это внедрение зависимости. То есть, когда вам в коде нужен объект (синглтон или из сессии взятый, например), вместо того, чтобы передавать его в параметры конструктора, вы регистрирует его в сервисах, и система автоматом его найдёт, когда он в коде потребуется