Re[10]: WPF что актуально?
От: varenikAA  
Дата: 22.04.21 01:37
Оценка:
Здравствуйте, 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)
....
☭ ✊ В мире нет ничего, кроме движущейся материи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.