Я новичок в автоматическом внедрении зависимостей и пытаюсь полностью реализовать Ninject с помощью приложения MVC4. Все функционально, но OCD во мне интересует, как приложение будет масштабироваться с точки зрения привязки списка в методе RegisterServices (IKernel kernel) в NinjectWebCommon.cs. Например,Инъекционная инъекция инжиниринга: чтение привязок из config?
/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IAbstractManagerA>().To<ConcreteManagerA>();
kernel.Bind<IAbstractManagerB>().To<ConcreteManagerB>();
kernel.Bind<IAbstractRepoA>().To<ConcreteRepoA>();
...etc etc could be hundreds
}
Есть ли лучший способ справиться с этим? Может быть, каждый спаривается как параметр web.config или какой-либо другой файл конфигурации? По существу инъекционные зависимости для инъекций в зависимости :)
Считаете ли вы использование соглашения по конфигурации? Ninject и Structuremap обеспечивает функцию сканера для таких конфигураций, как scanner.FromCallingAssembly(); scanner.BindWithDefaultConventions(); по моему личному мнению, смешивая конфигурацию файла xml, и IoC не очень хорошо смешивается, вот почему эта функциональность устарела в структуре map, надеюсь, что это поможет! –
Тогда вам следует рассмотреть Unity of Microsoft: http://msdn.microsoft.com/en-us/library/ff647848.aspx –
@ThanhNguyen: Серьезно, вы не можете просто советовать Unity. Мало того, что Unity может сделать, чего не могут сделать другие структуры (такие как Ninject). – Steven