Как использовать zenject снаружи и внутри Unity, но с разными DiContainers? - PullRequest
0 голосов
/ 25 февраля 2019

Я разрабатываю платформу для видеоигры, это чистый код на 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> ();

Это правильный способ реализовать идею, которую я хочу?Является ли этот способ получения класса платформы оптимальным (с точки зрения производительности)?Будем благодарны за любые ваши идеи или предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...