Я использую Unity для управления своими службами на сервере приложений, но по какой-то причине я не могу заставить работать метод 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, он все равно не будет работать.Любые идеи о том, где я иду с этим не так?