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