У меня есть случай, когда несколько разных классов наследуются от одного и того же интерфейса.Кроме того, иногда класс, который наследуется от интерфейса, также воспринимает его как зависимость.
Мое решение выглядит следующим образом:
InterfaceAssembly
-IGetData<T>
DataAssembly
-Repository.CustomerRepository : IGetData<Customer>
-Repository.ProductRepository : IGetData<Product>
-Cache.CustomerCache : IGetData<Customer>
-Cache.ProductCache : IGetData<Product>
Я хотел бы создать установщик, который будет отдавать приоритет пространству имен Cache
над пространством имен Repository
.Однако в случае CustomerCache
он как реализует, так и имеет зависимость от IGetData<Customer>
.CustomerCache
следует ввести CustomerRepository
для удовлетворения этой зависимости.
Есть ли простой способ справиться с ситуацией такого типа с замком Виндзор?Придется ли мне проявлять особую осторожность, чтобы избежать ошибки, которая может считаться циклической ссылкой?