Карта структуры, версия 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
,
Пожалуйста, предложите. Благодарю.