Ich benutze Einheit, um meine Dienste auf meinem App-Server zu verwalten, aber aus irgendeinem Grund kann ich nicht die Methode 'GetAllInstances' funktionieren. Das Seltsame ist, dass 'GetInstance' für den gleichen Typ gut zu funktionieren scheint! HierUnity 'GetAllInstances' gibt nichts zurück
ist die config:
<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>
Die Idee ist, dass, wenn der Server gestartet wird, muss ich alle konfigurierten Instanzen von IService erhalten können, um sie zu initialisieren.
IUnityContainer container = ConfigureUnityContainer();
UnityServiceLocator locator = new UnityServiceLocator(container);
var single = locator.GetInstance<IService>();
var all = locator.GetAllInstances<IService>().ToList();
Wie ich schon sagte, die Single funktioniert, aber die bekommen alle nichts zurück. Selbst wenn ich das IAtomCommandService-Mapping aus der Konfiguration entferne und nur den IService habe, funktioniert es immer noch nicht. Irgendwelche Ideen, wo ich falsch liege?
Danke Mark - das habe ich gleich nach dem Stellen der Frage bemerkt! Immer den Weg! –