是否可以找到所有使用 Ninject 创建的对象,注册为接口 A,但实现接口 B?

Is it possible to find all objects created with Ninject, registered as interface A, but implementing interface B?

我有以下问题。

假设我们有以下接口:

public interface IMyObserver
{
    Task<bool> OnSomeEvent();
}

我们的服务很少:

public class MyService1 : IMyService1, IMyObserver
{ ... }

public class MyService2 : IMyService2 , IMyObserver
{ ... }

等等

他们是这样绑定的:

Kernel.Bind<IMyService1>().To<MyService1 >();
Kernel.Bind<IMyService2>().To<MyService2>();

等等

是否可以在 ViewModel 构造函数中注入所有实现 IMyObserver 接口的实例?像这样:

public MyViewModel(IList<IMyObserver> observers)
{
}

你试过这样绑定和解析吗?

Kernel.Bind<IMyService1, IMyObserver>().To<MyService1>();
Kernel.Bind<IMyService2, IMyObserver>().To<MyService2>();

public MyViewModel(IEnumerable<IMyObserver> observers)
{
}