Здравствуйте, takTak, Вы писали:
T>вот это гуглится для юнити : https://stackoverflow.com/questions/1961549/resolving-ienumerablet-with-unity
Спасибо! На свежую голову пошло!
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
var first = new SuperService(this);
var second = new SecondService(this);
containerRegistry.RegisterInstance<IRunable>(first, first.name); //<= для резолва нужно имя
containerRegistry.RegisterInstance<IRunable>(second, second.name);
containerRegistry.Register<SuperService>(a => first); // <= использую фабрику для получения уже созданного экземпляра
containerRegistry.Register<SecondService>(a => second);
}
protected override void OnInitialized()
{
base.OnInitialized();
foreach (var x in Container.Resolve<IEnumerable<IRunable>>())
if (x is IRunable r)
r.Run();
}
protected override void OnExit(ExitEventArgs e)
{
foreach (var x in Container.Resolve<IEnumerable<IRunable>>())
if (x is IRunable r)
r.Stop();
base.OnExit(e);
}
}
....
public MainWindowViewModel(Services.SuperService service)
....