寻找Ninject相当于StructureMap的ObjectFactory.GetInstance

2019-08-19 00:02发布

我在MVC项目中使用Ninject,我已经用在Ninject.Mvc的自动注册功能,并绑定我成立了我的应用程序类。 但是,我有我想要创建一个从那些绑定独立实例的地方。 在StructureMap,可以执行var foo = ObjectFactory.GetInstance<IFoo>(); 它会解决它。 是否有Ninject 2等效? 我似乎无法在任何地方找到它。

Answer 1:

据我所知,NInject没有这样使所有的解决应该去一些内核静态方法。

但是你可以很容易地实现它;

 class ObjectFactory
 {
     static IKernel kernel = new StandardKernel(.....);
     public static T GetInstance<T>()
     {
          return kernel.Get<T>();
     }
 }

虽然,国际海事组织,NInject是不是作为服务定位DI容器有用得多。



Answer 2:

您还可以使用公共服务定位为Ninject国际奥委会它提供了你想要的一个抽象层。 其优点是,可以在以后切换容器,如果它不适合你的需求了。

在你的代码,你可以使用这样的:

ServiceLocator.Current.GetInstance<Type>();


文章来源: Looking for Ninject equivalent of StructureMap's ObjectFactory.GetInstance() method
标签: ninject