Castle ResolveAll返回空数组

use*_*376 3 .net c# castle-windsor

这是我的程序集(TestAssembly)的外观

Class BaseClass
{
....
....
}

Interface I1
{
....
....
}

Interface I2 : I1
{
....
....
}
Interface I3 : I1
{
....
....
}
Class A : BaseClass, I2
{
....
....
}

Class B : BaseClass, I3
{
....
....
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Castle Windsor来注册和解决所有这些组件.

container.Register(AllTypes.FromAssemblyNamed("TestAssembly")
                            .BasedOn<I1>()
                            .LifestyleSingleton());
Run Code Online (Sandbox Code Playgroud)

我试图解决所有类型的I1(接口I1)使用

container.ResolveAll<I1>();
Run Code Online (Sandbox Code Playgroud)

希望得到一个对象A和B的数组.相反,我得到一个空数组.怎么了?

Han*_*nus 5

我相信你需要告诉容器哪些服务与界面相关联,例如:

container.Register(AllTypes.FromAssemblyNamed("TestAssembly")
    .BasedOn<I1>()
    .WithServiceBase()
    .LifestyleSingleton());
Run Code Online (Sandbox Code Playgroud)