我在MVC项目中使用Ninject,并且我在Ninject.Mvc中使用了自动注册功能,并在我的应用程序类中设置了我的绑定。但是,我有一个地方想创建一个与这些绑定分开的实例。在StructureMap中,你可以做var foo = ObjectFactory.GetInstance<IFoo>();
,它会为你解决它。 Ninject 2中是否有等价物?我似乎无法在任何地方找到它。寻找相当于StructureMap的ObjectFactory.GetInstance()方法的Ninject
2
A
回答
6
AFAIK,NInject没有这样的静态方法,所以所有的解决办法都应该去一些内核。
但是你可以很容易地实现它;
class ObjectFactory
{
static IKernel kernel = new StandardKernel(.....);
public static T GetInstance<T>()
{
return kernel.Get<T>();
}
}
虽然IMO,NInject作为DI容器比服务定位器更有用。
1
你也可以使用Common Service Locator作为Ninject IOC的抽象层,它提供你想要的。优点是,如果它不再适合您的需求,您可以稍后切换容器。
在你的代码可以使用这样的事情:
ServiceLocator.Current.GetInstance<Type>();
相关问题
- 1. 寻找相当于scanf的
- 2. Ninject相当于Unity RegisterInstance方法
- 3. Autofac相当于StructureMap的WhatDoIHave()
- 4. 寻找popUpMenuPositioningItem:atLocation:inView:相当于10.5
- 5. 寻找相当于xpath,Lxml
- 6. 寻找相当于'onRender'的javascript事件
- 7. Castle Windsor相当于ninject的WhenClassHas
- 8. StructureMap到Ninject转换
- 9. StructureMap到Ninject规则
- 10. 寻找方法
- 11. PowerShell的 - 寻找Perl的重做相当于
- 12. 寻找的SharePoint UserProfileManager.Search方法
- 13. 寻找方法的类
- 14. 相当于Java Convert.FromBase64String方法
- 15. ,相当于date(String)方法?
- 16. 在flaskext.mysql中寻找相当于dictcursor的文件
- 17. 寻找一个相当于UIWebViewDelegate的iOS应用移植到OSX
- 18. 我在寻找相当于ElasticSearch的查询 -
- 19. 在Autofac寻找相当于温莎城堡的功能
- 20. 寻找的mysql_fetch_field相当于SQLSRV或周围
- 21. 关于寻找相同的文件对
- 22. jQuery相当于Ruby的.send()方法
- 23. vb.net相当于PHP的魔术方法
- 24. Mongoid相当于ActiveRecord的`serialize`方法
- 25. Ninject的Bind.ToMethod的Unity相当于使用CQRS
- 26. 关于tarjan的寻找scc的算法
- 27. 寻找一个“无头浏览器”相当于用于黄瓜测试的PHP
- 28. Android:寻找相当于使用开关变量
- 29. 需要帮助获取Ninject等效的StructureMap语法
- 30. Ninject只有当注入IFactory.Create()方法
是的,这是很简单的添加静态容器访问。当需要访问者时,我们有一个被重用:http://github.com/idavis/ninject.extensions.wcf/blob/master/source/Ninject.Extensions.Wcf/KernelContainer.cs – 2009-10-16 13:34:27