Ich habe eine Schnittstelle wie diese
public interface IWriter
{
...
}
und eine Klasse
public class WriterMerger
{
public WriterMerger(IEnumerable<IWriter> writers)
...
}
Ich möchte, dass structuremap das Konstruktorargument bei WriterMerger mit allen registrierten IWritern ausfüllt. Ich habe die verschiedenen Writer mit
StructureMap.ObjectFactory.Initialize(x =>
{
x.ForRequestedType<IWriter>().AddConcreteType<MemoryWriter>();
x.ForRequestedType<IWriter>().AddConcreteType<FlatFileWriter>();
x.ForRequestedType<IWriter>().AddConcreteType<DbWriter>();
}
aber der Aufruf
ObjectFactory.CreateInstance<WriterMerger>();
Gibt eine Ausnahme zurück "Keine Standardinstanz definiert für PluginFamily System.Collections.Generic.IEnumerable`1[[IWriter..]]" (Klassenname bearbeitet)
Gibt es einen Trick, um dies automatisch zu tun, oder muss ich eine benutzerdefinierte Fabrikmethode erstellen?