Предполагая, что вы используете контейнер IO C, вы можете внедрить экземпляр контейнера, который сам по себе, в конструктор, а затем использовать этот экземпляр, чтобы решить ваши службы плохо. Это плохая практика, возможно, вы ищете что-то как this
Другим хорошим вариантом было бы сделать необязательные зависимости объектами Lazy, просто используя класс Lazy, поэтому вы будете кодировать Lazy<IDependency1>
, используя Ленивый шаблон гарантирует, что объекты не будут созданы, если вы на самом деле не хотите к ним обращаться, вы можете прочитать больше об этом здесь