могу: у меня GameLifetimeScope конструктор срабатывает в режиме сцены, игры, и при выключении плей мода.
Потому что это монобех. Нельзя использовать конструктор у монобехов
а можно еще про сам механизм спросить? не нашел информации. как объект передается в параметры? слышал, что с помощью рефлексии. но она ведь, кажется, про другое совсем
С помощью рефлексии, да. Под капотом я сильно не шарился, но в общем и целом все DI-фреймворки резолвят с помощью класса Activator и подобных вещей. В случае VContainer есть AOT-компиляция, чтобы исключить потери на рефлексии.
где то можно конкретно про это почитать? сколько искал - везде не то написано, что интересует
Можно через ExpressionTree
Про что именно? У VContainer есть исходники, изучай их )
механизм рефлексии, с помощью которого объекты передаются
Ну вот выше уже упомянули Activator и ExpressionTree. В сервис локаторе регистрируются типы, которые ты указываешь в методе Register. Потом нисходящим способом при обращении к любому классу, который уже находится в локаторе, он будет создан через рефлексию, его аргументы точно так же. Далее ссылки или сохраняются, или создаются новые, исходя из LifetimeScope.
посмотрю,что это за активатор такой. спасибо
ExpressionTree смотри тоже. Это более продвинутый способ
Посмотри видос у k syndikat про zenject может поможет
Обсуждают сегодня