2015-03-13 2 views
0

Я смотрю на переход от 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 не может предоставить эту информацию, и мне нужно расширить мой поиск.

ответ

0

Я являюсь автором LightInject. Вы можете перейти к типу, разрешенному с помощью paramInfo.Member.DeclaringType

Смежные вопросы