Как использовать zenject снаружи и внутри Unity, но с разными DiContainers?

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

Другие вопросы по тегам