我想在我的应用程序的各个层之间共享容器。我开始创建一个静态类来初始化容器并在容器中注册类型。
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 方法。解决和获取有什么区别?
在我的单元测试中,我并不总是希望容器中的每个注册类型。有没有办法初始化一个空容器,然后注册我需要的类型。我将在单元测试中模拟类型,所以我也必须注册它们。
有一个 Inject 方法,但它说实例的生命周期不受管理?
有人可以让我以正确的方式吗?
如何注册、取消注册对象和重置容器。