如何在Unity的内部和外部使用zenject,但使用不同的DiContainer?

时间:2019-02-25 14:11:01

标签: zenject

我正在开发一个视频游戏平台,它是纯C#代码,我想使用Zenject进行依赖项注入。这个想法是,无论在何处使用该平台,都可以初始化其依赖项注入。我在平台上有这个课程:

public static class DIManager
    {
        private static DiContainer _container;

        public static DiContainer Container {get => _container; set => _container = value; }

        public static void Initialize ()
        {
            _container = new DiContainer ();
            InstallBindings ();
        }

        private static void InstallBindings ()
        {
            _container.Install <AppInstaller> ();
        }

    }

创建并初始化平台中使用的容器,但是要在平台之外使用它,我总是必须调用:

_foo = DIManager.Container.TryResolve <Foo> ();

这是实现我想要的想法的正确方法吗?这样获得平台类的方式是否在性能方面是最优的?您的任何想法或建议都会受到欢迎,

0 个答案:

没有答案