我希望使用Castle Windsor解决以下问题:
IEnumerable<Definition<IEntity>>
目前我只得到了一个IEnumerable,其中只包含一个与IEntity接口的第一个实现相匹配的对象。
我希望获得一个数组
{ Definition<Entity1>, Definition<Entity2>, ... }
我有一种感觉需要一个子解析器,但我不知道从哪里开始。
更新
var container = new WindsorContainer();
container.Kernel.Resolver.AddSubResolver(
new CollectionResolver(container.Kernel, true));
container.Register(Component.For(typeof (Definition<>)));
var binDir = HostingEnvironment.MapPath("~/bin");
var assemblyFilter = new AssemblyFilter(binDir);
container.Register(Types.FromAssemblyInDirectory(assemblyFilter)
.BasedOn<IEntity>()
.Unless(t => t.IsAbstract || t.IsInterface)
.WithServiceAllInterfaces()
.LifestyleTransient());
// This doesn't work!
var items = container.Resolve(typeof(IEnumerable<Definition<IEntity>>));