Карта структуры, версия 3, конструктор Injection для IEnumerable<T> не работает

У меня есть несколько типов, как ParentClassA а также ParentClassBс их конструктором, имеющим параметр как IEumerable<IType>, как показано в коде ниже.

    public interface IType
    { }
    public class TypeA : IType
    { }
    public class TypeB : IType
    { }
    public class ParentClassA
    {
        public ParentClassA(IEnumerable<IType> obj)
        {
            var d = obj;
        }
    }

    public class ParentClassB
    {
        public ParentClassB(IEnumerable<IType> obj)
        {
            var d = obj;
        }
    }

Теперь в реестре Structuremap (версия dll Structuremap dll - 3.1.5.0). Я хочу настроить перечислимые элементы на основе контекста, т.е. на основе создаваемого родительского объекта, что-то вроде:

For<IEnumerable<IType>>().Use(x => ff(x)).AlwaysUnique();

public IEnumerable<IType> ff(StructureMap.IContext x)
    {
        if (x.RootType.Name.Equals(typeof(ParentClassA).Name))
            return new List<IType>{ new TypeA() };
        else return new List<IType> { new TypeA() };
    }

но когда я запускаю приложение (оно прекрасно собирается), в конструкторе ParentClassA и т. д., я вижу только пропуск пустого списка, но я ожидаю, что это список возврата из функции ff,

Пожалуйста, предложите. Благодарю.

0 ответов

Другие вопросы по тегам