我使用windsor和subresolver ArrayResolver,除了一件事之外还可以很好地工作。
这里ArrayResolver以它应该工作的方式工作。
class SomeClass : ISomeInterface
{
public SomeClass(ISomeDependency[] dependecies)
{}
}
这件事不起作用
ISomeDependency[] = container.Resolve<ISomeDependency[]>().Cast<ISomeDependency>().ToArray()
,这就是我要问的原因,为什么这里不涉及子解析器?
答案 0 :(得分:1)
因为它是一个子依赖解析程序 - 它将解析您提取的组件的依赖关系,而不是组件本身。
用于该用途
container.ResolveAll<ISomeDependency>();