【发布时间】:2016-12-15 13:19:37
【问题描述】:
我有以下课程
public class NightlyJob : IScheduleJob, IRecurringJob
对于这两个接口,我都有这样的简单类型工厂:
public interface IScheduleJobFactory
{
IEnumerable<IScheduleJob> Create();
}
没有从两个工厂的 .Create() 方法中检索到提到的类。似乎只能从一个工厂中检索到该类,具体取决于首先编写签名中的哪个接口。
我的问题是有没有办法解决这个问题?
【问题讨论】:
-
为什么需要工厂?他们是code smells。
-
Castle 的类型化工厂似乎是最简单的方法。我需要做的就是获取一个接口的实现并选择一个具有匹配属性的接口。
-
为什么不将
IEnumerable<IScheduleJob>注入您的消费者? -
我不知道该怎么做。
-
所以您的实际问题是:“如何注册 IScheduleJob 实例的集合?”?
标签: c# castle-windsor factory ioc-container