Unity 'GetAllInstances' ничего не возвращает

Я использую единство для управления своими службами на моем сервере приложений, но по какой-то причине я не могу заставить работать метод GetAllInstances. Странно то, что GetInstance для того же типа работает нормально!

Вот конфигурация:

<alias alias="IService" type="Atom.Server.Infrastructure.Interface.Service.IService, Atom.Server.Infrastructure.Interface"/>
<alias alias="IAtomCommandService" type="Atom.CommandServer.AtomCommandService.Interface.IAtomCommandService, Atom.CommandServer.AtomCommandService.Interface"/>
<alias alias="AtomCommandService" type="Atom.CommandServer.AtomCommandService.AtomCommandService, Atom.CommandServer.AtomCommandService"/>


<register type="IService" mapTo="AtomCommandService">
    <lifetime type="Singleton"/>
</register>
<register type="IAtomCommandService" mapTo="AtomCommandService">
    <lifetime type="Singleton"/>
</register>

Идея состоит в том, что при запуске сервера мне нужно иметь возможность получить все настроенные экземпляры IService для инициализировать их.

    IUnityContainer container = ConfigureUnityContainer();
    UnityServiceLocator locator = new UnityServiceLocator(container);

    var single = locator.GetInstance<IService>();
    var all = locator.GetAllInstances<IService>().ToList();

Как я уже сказал, сингл работает, но метод get all ничего не возвращает. Даже если я удалю сопоставление IAtomCommandService из конфигурации и оставлю только IService, он все равно не работает. Есть идеи, где я ошибаюсь?

5
задан Mark Seemann 14 January 2011 в 09:07
поделиться