Возможно ли в LightInject IoC решить тип, основанный на некотором обычном методе?Тип разрешения контейнера LightInject IoC по специальному методу?
например разрешителе бы вызвать метод как этот
public interface IMyType {}
public class MyEvenType : IMyType {}
public class MyOddType : IMyType {}
public static int Foo;
public static IMyType ResolveType()
{
if (Foo % 2 == 0)
return MyEvenType;
return MyOddType;
}
Как бы я написать метод container.Register
так, что он вызывает вышеупомянутый метод для того, чтобы решить эту зависимость?
Спасибо, что мог работать. Я вижу, что вы вернули экземпляр типа из распознавателя: 'return new MyEvenType();'. Является ли этот экземпляр тем, что вводится при разрешении зависимостей? –
@JK. Это. Если вы изменили тест, чтобы вместо этого вводить статический int и выводили этот статический int в каждом конструкторе, увеличивая его между разрешениями, вы увидите, что он продолжает увеличиваться (что означает, что он разрешает соответствующий экземпляр return new MyEvenType(), и т.д). –