Как я могу получить все объекты из контейнера Unity в моем коде - PullRequest
0 голосов
/ 27 июня 2019

Я создал класс из класса ServiceBase в своем коде.

public class ControlSystemServiceBase: ServiceBase
{
  public ControlSystemServiceBase() : base()
  {
     this.AutoLog = true;
  }
}

после этого я зарегистрировал этот класс как

container.RegisterType<ControlSystemServiceBase, ServiceAlarmAccess>("AlarmAccessService", IocLifetime.SingleInstance);
container.RegisterType<ControlSystemServiceBase, ServiceDataAccess>("DataAccessService", IocLifetime.SingleInstance);

Хорошо. Теперь я хочу получить все объекты для этого типа ControlSystemServiceBase. Но я не могу.

var servicesToRun = container.ResolveAll(typeof(ControlSystemServiceBase));

servicesToRun всегда 0. Но если я изменю регистрации с ControlSystemServiceBase на ServiceBase и зарегистрирую мои классы как

container.RegisterType<ServiceBase, ServiceAlarmAccess>("AlarmAccessService", IocLifetime.SingleInstance);
container.RegisterType<ServiceBase, ServiceDataAccess>("DataAccessService", IocLifetime.SingleInstance);

Я могу получить все 2 объекта. Зачем?

...