je suit classeType de ne pas résoudre dans plusieurs usines
public class NightlyJob : IScheduleJob, IRecurringJob
Pour les deux interfaces que j'ai simples usines typées comme ceci:
public interface IScheduleJobFactory
{
IEnumerable<IScheduleJob> Create();
}
classe Mentionné n'est pas récupéré des deux usines. Create()
méthodes. Il semble que la classe peut être récupérée à partir d'une seule usine en fonction de laquelle des interfaces de la signature est écrite en premier.
Ma question est de savoir s'il y a un moyen de contourner cela?
Pourquoi avez-vous une usine? Ils sont [odeurs de code] (https://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=100). – Steven
L'usine dactylographiée de Castle semblait être la solution la plus simple. Tout ce que je dois faire est d'obtenir des implémentations d'une interface et en choisir une avec la propriété correspondante. – zmaten
Pourquoi ne pas injecter 'IEnumerable' dans votre (vos) client (s)? –
Steven