Как сделать привязку с помощью декораторов с помощью Ninject без зависимости?

Я понимаю, как настраивать украшения, как описано здесь . Но я вижу одну проблему. В моем случае я хочу избежать зависимости репозитория.

Bind<IRepository>().To<Repository>().WhenInjectedInto<CachedRopsitory>();
Bind<IRepository>().To<CachedRepository>().WhenInjectedInto<CachedLoggedRepository>();
Bind<IRepository>().To<CachedLoggedRepository>();

Чтобы уточнить, у меня есть UI, BL (бизнес-уровень), DL (уровень данных). Ссылка на UI и DL BL. Приведенный выше код находится в корне композиции пользовательского интерфейса. И IRepository находится в BL, а Repository принадлежит уровню данных. Я не хочу ссылаться на DL в пользовательском интерфейсе. То есть я не хочу делать DL зависимостью от пользовательского интерфейса. поэтому код, который мы используем в таком сценарии, выглядит следующим образом, используя соглашение вместо конфигурации.

m_Kernel.Bind(x => x.FromAssembliesMatching("Northwind.*.dll").SelectAllClasses().
    BindAllInterfaces());

Итак, вопрос прост: как я могу использовать условные привязки с соглашением вместо конфигурации?


person VivekDev    schedule 12.03.2015    source источник
comment
Привет Стивен. Ваша ссылка помогла и содержит массу информации. Изучение всех вариантов. Спасибо.   -  person VivekDev    schedule 16.03.2015
comment
Взгляните на CompositionRoot.   -  person VivekDev    schedule 07.08.2016