Как вы от слов "в этой строке не закодирована никакая информация" пришли к "то есть я могу закодировать в неё информацию"? Нет, не напишете вы такой генератор.
Лучший вариант — описать все зависимости класса в одном месте и предоставить фреймворку их подготовку (у зависимостей ещё и свои зависимости могут быть). Для этого и нужен провайдер.
Ещё раз — вы путаете. Ваш класс и сервис-провайдер — это две разные сущности. Создавать провайдер не нужно, можно использовать стандартный. Регистрировать свой класс в стандартном провайдере имеет смысл.
Зачем нужен DI-контейнер поищите, этот вопрос уже очень много раз объяснён в самых разных видах, нет смысла повторяться.
Для этого нужно получить всех потомков и для каждого проверить наличие класса. Если у кого-то нет - флаг в false. Как я раньше написал, как сделать и то и другое вам показали. Что же тут сложного?