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