Tengo una interfaz como estaStructureMap, constructor que toma una lista de plugins
public interface IWriter
{
...
}
y una clase
public class WriterMerger
{
public WriterMerger(IEnumerable<IWriter> writers)
...
}
Quiero StructureMap llenar el argumento del constructor en WriterMerger con todas las de iWriter registrados . que registró los diferentes escritores con
StructureMap.ObjectFactory.Initialize(x =>
{
x.ForRequestedType<IWriter>().AddConcreteType<MemoryWriter>();
x.ForRequestedType<IWriter>().AddConcreteType<FlatFileWriter>();
x.ForRequestedType<IWriter>().AddConcreteType<DbWriter>();
}
embargo llamando
ObjectFactory.CreateInstance<WriterMerger>();
devuelve una excepción "Sin instancia predeterminada definida para PluginFamily System.Collections.Generic.IEnumerable`1 [[iWriter ..]] " (nombre de clase editado)
¿Algún truco para hacer esto automáticamente? o tendré que hacer un método de fábrica personalizado?
Gracias, que resolvió mi problema – AndreasN