Я хочу поделиться контейнером между различными слоями в моем приложении. Я начал создавать статический класс, который инициализирует контейнер и регистрирует типы в контейнере.
public class GeneralDIModule : NinjectModule
{
public override void Load()
{
Bind<IDataBroker>().To<DataBroker>().InSingletonScope();
}
}
public abstract class IoC
{
private static IKernel _container;
public static void Initialize()
{
_container = new StandardKernel(new GeneralDIModule(), new ViewModelDIModule());
}
public static T Get<T>()
{
return _container.Get<T>();
}
}
Я заметил, что есть метод Resolve. В чем разница между Resolve и Get?
В моих модульных тестах я не всегда хочу каждый зарегистрированный тип в моем контейнере. Есть ли способ инициализации пустого контейнера, а затем зарегистрировать типы мне нужно. Я также буду издеваться над типами в модульном тестировании, поэтому мне придется их также регистрировать.
Существует метод Inject, но он говорит, что жизненный цикл экземпляра не управляется?
Может ли кто-нибудь правильно настроить меня?
Как мне зарегистрировать, отменить регистрацию объектов и сбросить контейнер.