Какой подход создания Singleton выбрать при реализации DI контейнера: при старте приложения или при первом обращении?

C#DI контейнерSingletonАрхитектураПроектирование