Я хочу изолировать весь мой код от библиотеки контейнеров IoC, которую я выбрал (Unity). Для этого я создал интерфейс IContainer, который предоставляет функции Register () и Resolve (). Я создал класс под названием UnityContainerAdapter, который реализует IContainer и оборачивает реальный контейнер. Таким образом, только сборка, в которой определен UnityContainerAdapter, знает о библиотеке Unity.
У меня утечка в моей мысли об изоляции. Unity ищет атрибуты в членах типа, чтобы узнать, куда внедрить зависимости. Большинство библиотек IoC, которые я видел, также поддерживают это. У меня проблема в том, что я хочу использовать эту функцию, но не хочу, чтобы мои классы зависели от конкретного атрибута Unity.
Есть ли у вас какие-либо предложения по решению этой проблемы?
В идеале я бы создал свой собственный атрибут [Dependency] и использовал бы его в своем коде. Но мне нужно было бы указать реальному контейнеру поиск моего атрибута вместо его собственного.