IoC -Поддержка нескольких реализаций для одного интерфейса

Мне интересно, почему контейнеры.Net IoC не поддерживают несколько реализаций для одного интерфейса! Возможно, я ошибаюсь, но, насколько я видел, такие фреймворки, как Ninject, частично поддерживают эту функцию с помощью аннотаций (. как?). Я не думаю, что другие фреймворки, такие как Windsor или простой инжектор, имеют простой механизм для поддержки этого сценария.

Есть ли причина, по которой это не поддерживается многими фреймворками? Насколько мне известно, одной из наиболее важных причин использования интерфейсов является достижение слабой связанности. Если фреймворки, предназначенные для улучшения слабой связанности, не поддерживают плавно несколько реализаций для одного интерфейса, то я не понимаю, почему!

P.S. Конечно, я понимаю, что во время выполнения возникнет проблема с разрешением, и контейнер будет путаться в том, какую реализацию выбрать, но это то, что нужно учитывать при разработке, верно?

17
задан Community 23 May 2017 в 12:10
поделиться