类型无法在多个工厂中解析

Type not resolving in multiple factories

我关注class

public class NightlyJob : IScheduleJob, IRecurringJob

对于这两个接口,我都有像这样的简单类型化工厂:

public interface IScheduleJobFactory
{
    IEnumerable<IScheduleJob> Create();
}

未从两个工厂的 .Create() 方法中检索到提到的 class。似乎 class 只能从一个工厂检索,具体取决于签名中的哪个接口先写。

我的问题是是否有办法解决这个问题?

按照史蒂文在评论中建议的方向进行了一些搜索。我发现我的解决方案是直接将 IEnumerable<IScheduleJob>IEnumerable<IRecurringJob> 注入消费者。这些通过使用 Castle 的 CollectionResolver 被解析为实现的集合,如下所示:

container.Kernel.Resolver.AddSubResolver(new CollectionResolver(container.Kernel));
        container.Register(
            Classes.FromAssemblyInDirectory(new AssemblyFilter("."))
                .BasedOn(typeof(IScheduleJob)).
                WithServiceAllInterfaces()
        );