Я получил такой интерфейс
public interface IWriter
{
...
}
и класс
public class WriterMerger
{
public WriterMerger(IEnumerable<IWriter> writers)
...
}
Я хочу, чтобы structmap заполнил аргумент конструктора в WriterMerger со всеми зарегистрированными IWriter. Я зарегистрировал разных авторов с помощью
StructureMap.ObjectFactory.Initialize(x =>
{
x.ForRequestedType<IWriter>().AddConcreteType<MemoryWriter>();
x.ForRequestedType<IWriter>().AddConcreteType<FlatFileWriter>();
x.ForRequestedType<IWriter>().AddConcreteType<DbWriter>();
}
однако вызов
ObjectFactory.CreateInstance<WriterMerger>();
Возвращает исключение "Нет экземпляра по умолчанию, определенного для PluginFamily System.Collections.Generic.IEnumerable`1 [[IWriter..]]" (имя класса отредактировано)
Любой трюк для этого автоматически? или мне придется создать собственный factory метод?