Я смотрю на переход от Ninject к более легкому весу (и быстрее) Ioc.LightInject Определяемый тип разрешения?
Я взял LightInject и имею игру, но не могу найти, как сделать следующее:
Изнутри вызова RegisterConstructorDependency Я хочу, чтобы иметь возможность определить тип объекта разрешения. Информация Param содержит все, что мне нужно знать о расположении параметров. Но я не могу определить цель инъекции.
Это проблема при попытке ввести строковые значения в конструкторы.
Пример:
public interface IService { void Go(); }
public class Impl1 : IService {
public Impl1(string needsA){ }
public void Go(){ }
}
public class Impl2 : IService {
public Impl1(string needsA, string needsB){ }
public void Go(){ }
}
// Elsewhere
container.Register<IService, Impl1>();
container.Register<IService, Impl2>();
container.RegisterConstructorDependency<string>((factory, paramInfo) => ???);
Как в регистрации конструктора арг можно определить, какая реализация (Impl1 или Impl2) решается. Им могут потребоваться разные значения, которые необходимо передать «needsA».
Возможно, LightInject не может предоставить эту информацию, и мне нужно расширить мой поиск.