首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >行为解析器+ Zenject

行为解析器+ Zenject
EN

Stack Overflow用户
提问于 2022-09-09 10:03:17
回答 1查看 30关注 0票数 0

Zenject不适用于行为Disiner。当注入行动时,注入不会发生。

代码语言:javascript
复制
[Inject]
public void Constructor(GameStateHandler gameStateHandler)
{
    gameStateHandler.OnGameStart(() => _isGameStart = true);
    Debug.Log(2);
}

调试不接收它进入构造函数方法这一事实的日志,如果我使用字段,那么它也是空的。

我期待被注入行动。Zenject不适用于行为分析吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-09 10:22:59

您还需要显示代码的绑定阶段。您需要将其就位,并检查绑定是否运行。来自文档

“在Zenject中,依赖映射是通过向容器添加绑定来完成的。然后容器应该‘知道’如何创建应用程序中的所有对象实例,通过递归解析给定对象的所有依赖项。”

所以在你的班级里,想象一下名为Foo

代码语言:javascript
复制
public class Foo
{
    IBar _bar;

    public Foo()
    {
    }

    [Inject]
    public void Constructor(GameStateHandler gameStateHandler)
    {
        gameStateHandler.OnGameStart(() => _isGameStart = true);
        Debug.Log(2);
    }
}

您需要在此之前进行绑定:

代码语言:javascript
复制
public class FooInstaller : MonoInstaller
{
    public override void InstallBindings()
    {
        Container.Bind<Foo>().AsSingle();
        Container.Bind<GameStateHandler>().AsSingle();
    }
}

所有的东西都在文档里解释。一旦FooInstaller就绪,InstallBindings方法将在启动应用程序时运行。这将使容器知道在代码中请求Foo实例时应该提供什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73660437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档