Je suis une interface comme celui-ciStructureMap, constructeur qui prend une liste de plugins
public interface IWriter
{
...
}
et une classe
public class WriterMerger
{
public WriterMerger(IEnumerable<IWriter> writers)
...
}
Je veux StructureMap remplir l'argument du constructeur sur WriterMerger avec tous iWriter enregistrés de . Je enregistré les différents écrivains avec
StructureMap.ObjectFactory.Initialize(x =>
{
x.ForRequestedType<IWriter>().AddConcreteType<MemoryWriter>();
x.ForRequestedType<IWriter>().AddConcreteType<FlatFileWriter>();
x.ForRequestedType<IWriter>().AddConcreteType<DbWriter>();
}
cependant appeler
ObjectFactory.CreateInstance<WriterMerger>();
Renvoie une exception « Aucune instance par défaut défini pour PluginFamily System.Collections.Generic.IEnumerable`1 [[iWriter ..]] " (nom de classe modifié)
Un truc pour faire cela automatiquement? ou devrais-je faire une méthode d'usine personnalisée?
Merci, qui a résolu mon problème – AndreasN