Использование служебных ключей (или «именованных служб») при создании контейнера) кажется плохой идеей.
Использование именованных служб требует, чтобы мы либо аннотировали параметры нашего конструктора соответствующими ключами (таким образом, связывая их с контейнером), либо выполняли дополнительные подключения для каждой из наших служб (таким образом, теряя большую часть автоматизации из контейнера).
Например, в настоящее время у меня есть следующий интерфейс, который реализован следующими классами:
IListSerializer
CheckboxListSerializer
TreeViewListSerializer
У меня также есть бесчисленное количество классов, которые зависят от одного или обоих из этих классов. IListSerializer
в качестве моей зависимости, а не реализации. Это означает, что я должен использовать ключи / имена, чтобы различать их, и именно здесь это начинает становиться некрасивым.
Я вижу свои варианты как bei ng одно из следующего:
Есть предложения?