Zenject不适用于行为Disiner。当注入行动时,注入不会发生。
[Inject]
public void Constructor(GameStateHandler gameStateHandler)
{
gameStateHandler.OnGameStart(() => _isGameStart = true);
Debug.Log(2);
}调试不接收它进入构造函数方法这一事实的日志,如果我使用字段,那么它也是空的。
我期待被注入行动。Zenject不适用于行为分析吗?
发布于 2022-09-09 10:22:59
您还需要显示代码的绑定阶段。您需要将其就位,并检查绑定是否运行。来自文档
“在Zenject中,依赖映射是通过向容器添加绑定来完成的。然后容器应该‘知道’如何创建应用程序中的所有对象实例,通过递归解析给定对象的所有依赖项。”
所以在你的班级里,想象一下名为Foo
public class Foo
{
IBar _bar;
public Foo()
{
}
[Inject]
public void Constructor(GameStateHandler gameStateHandler)
{
gameStateHandler.OnGameStart(() => _isGameStart = true);
Debug.Log(2);
}
}您需要在此之前进行绑定:
public class FooInstaller : MonoInstaller
{
public override void InstallBindings()
{
Container.Bind<Foo>().AsSingle();
Container.Bind<GameStateHandler>().AsSingle();
}
}所有的东西都在文档里解释。一旦FooInstaller就绪,InstallBindings方法将在启动应用程序时运行。这将使容器知道在代码中请求Foo实例时应该提供什么。
https://stackoverflow.com/questions/73660437
复制相似问题