私は次の工場を持っています:
public class MyFactory : IMyFactory
{
private readonly IEnumerable<IMyService> myServices
public MyFactory(IEnumerable<IMyService> myServices)
{
this.myServices = myServices;
}
}
私はIEnumerable<IMyService>
このように登録しています:
container.Register<IMyFactory, MyFactory>();
container.RegisterAll<IMyService>(
from s in AppDomain.CurrentDomain.GetAssemblies()
from type in s.GetExportedTypes()
where !type.IsAbstract
where typeof(IMyService).IsAssignableFrom(type)
select type);
container.Verify();
次に、次の結果が得られます
// correctly resolves to count of my 4 implementations
// of IMyService
var myServices = container.GetAllInstances<IMyService>();
// incorrectly resolves IEnumerable<IMyService> to count
// of 0 IMyServices.
var myFactory = container.GetInstance<IMyFactory>();
ファクトリがサービスのコレクションを解決できないのはなぜですか?