Mam interfejs podobny do tegoStructureMap, konstruktor, który pobiera listę wtyczek
public interface IWriter
{
...
}
i klasę
public class WriterMerger
{
public WriterMerger(IEnumerable<IWriter> writers)
...
}
chcę StructureMap wypełnić argument konstruktora na WriterMerger wszystkich zarejestrowanych IWriter-tych . Zarejestrowałem różnych pisarzy z
StructureMap.ObjectFactory.Initialize(x =>
{
x.ForRequestedType<IWriter>().AddConcreteType<MemoryWriter>();
x.ForRequestedType<IWriter>().AddConcreteType<FlatFileWriter>();
x.ForRequestedType<IWriter>().AddConcreteType<DbWriter>();
}
jednak dzwonisz
ObjectFactory.CreateInstance<WriterMerger>();
Zwraca wyjątek „Brak domyślnego wystąpienia zdefiniowanego dla PluginFamily System.Collections.Generic.IEnumerable`1 [[IWriter ..]] " (edytowano nazwę klasy)
Każda sztuczka do automatycznego wykonywania tej czynności? czy będę musiał wykonać niestandardową metodę fabryczną?
Dzięki, że rozwiązał mój problem – AndreasN