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
원하는 것을 제공하는 Ninject IOC의 추상화 레이어로 Common Service Locator을 사용할 수도 있습니다. 장점은 나중에 컨테이너를 바꿀 수 있다는 것입니다.
ServiceLocator.Current.GetInstance<Type>();
관련 문제
- 1. 권장 SVN 링크를 찾고 있습니다
- 2. VB.NET에서 ASP의 "Response"메소드에 해당하는 것은 무엇입니까?
- 3. Ruby의 url_for 메소드에 해당하는 Javascript가 있습니까?
- 4. 메소드에 동일한 유형의 삭제가 있습니다
- 5. NInject를 사용하여 클래스를 찾고, 자신의 매개 변수를 사용하여 클래스를 생성하십시오.
- 6. VB doevents에 해당하는 PHP를 찾고 있는데
- 7. 유연한보고 솔루션을 찾고 있습니다.
- 8. kml 파일을 찾고 있습니다
- 9. JQuery에서 메뉴를 찾고 있습니다.
- 10. 객체 데이터베이스를 찾고 있습니다
- 11. 자물쇠가없는 컨테이너를 찾고 있습니다.
- 12. LINQ : 아이디어를 찾고 있습니다
- 13. jQuery 리소스를 찾고 있습니다.
- 14. 2D coverflow를 찾고 있습니다.
- 15. 구조체가 System.Type을 찾고 있습니다.
- 16. 여기서 평균을 찾고 있습니다
- 17. StructureMap의 AddConcreteType과 TheDefaultIsConcreteType의 차이점은 무엇입니까?
- 18. 클래스의 하위 유형 인스턴스를 해당하는 오버로드 된 메소드에 전달하려면 어떻게해야합니까?
- 19. Jinja2 :보기 도우미를 찾고 있습니다
- 20. 웹캠 녹화 위젯을 찾고 있습니다.
- 21. OSD 구성 요소를 찾고 있습니다.
- 22. LAN 아키텍처 - 입력을 찾고 있습니다.
- 23. 좋은 API가있는 GPS를 찾고 있습니다.
- 24. 데이터베이스 프로젝트의 대안을 찾고 있습니다
- 25. Wpf Bindings 차트를 찾고 있습니다.
- 26. Java에서 Chromakey 라이브러리를 찾고 있습니다.
- 27. 자바를위한 사운드 라이브러리를 찾고 있습니다.
- 28. HTML toc 생성기를 찾고 있습니다.
- 29. 암호화/복호화 기능을 찾고 있습니다.
- 30. jQuery 탭 플러그인을 찾고 있습니다.
그래, 정적 컨테이너 접근을 추가하는 것은 매우 간단하다 : 당신의 코드에서
이 같은 것을 사용할 수 있습니다. 접근자가 필요할 때 재사용되는 클래스가 있습니다. http://github.com/idavis/ninject.extensions.wcf/blob/master/source/Ninject.Extensions.Wcf/KernelContainer.cs –