У меня есть случай, когда несколько разных классов наследуются от одного и того же интерфейса. Кроме того, иногда класс, наследующий от интерфейса, также принимает его как зависимость.
Мое решение выглядит так:
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
, чтобы удовлетворить эту зависимость.
Есть ли простой способ справиться с подобной ситуацией с помощью Castle Windsor? Придется ли мне быть особенно осторожным, чтобы избежать ошибки из-за того, что я мог бы счесть циклической ссылкой?
IsDefault()
при регистрации по соглашению. github.com/castleproject/Windsor/blob/ 18.06.2018