Мы используем Ninject в качестве части модификации нашей унаследованной системы. В некоторых частях приложения мы решили использовать статический локатор сервисов, который обертывает Ninject. Это действительно только статический адаптер.В какой момент происходит активация сервисов в Ninject при запросе IEnumerable
Когда я запрашиваю IEnumerable<IFoo>
через наш Сервисный Локатор, он просто запрашивает то же самое с помощью метода Ninject GetAll
. Я хотел бы знать, так как я фактически не перечислял список, все службы останутся бездействующими.
Причина, по которой я прошу, заключается в использовании Ninject для замены старого локатора контроллера в приложении WinForms. Некоторые из этих контроллеров выглядят волосатыми, поэтому я не хочу, чтобы они активировались, пока я не отфильтровывался до того, что я хочу. Как мы это делаем, применяем предложение Where
к коллекции на локаторе службы, а затем используя FirstOrDefault, чтобы выбрать правильный.
Мое понимание, что активация произойдет при перечислении (в нашем случае на FirstOrDefault
), это правильно?
Извините, меня не было на мгновение, отдано. – McDonnellDean