я следующий классТип не разрешения на нескольких заводах
public class NightlyJob : IScheduleJob, IRecurringJob
Для обоих интерфейсов у меня есть простые типизированные фабрики, как это:
public interface IScheduleJobFactory
{
IEnumerable<IScheduleJob> Create();
}
Упомянутый класс не извлекается из обоих заводов. Create()
методов. Кажется, что класс можно получить только с одного завода, в зависимости от того, какой из интерфейсов в сигнатуре записывается первым.
Мой вопрос в том, есть ли способ обойти это?
Зачем вам нужен завод? Они [запахи кода] (https://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=100). – Steven
Замкнутая фабрика замка казалась самым простым способом. Все, что мне нужно сделать, это получить реализацию интерфейса и выбрать один с соответствующим свойством. – zmaten
Почему бы не ввести 'IEnumerable' в ваш потребитель (ы)? –
Steven