동일한 인터페이스를 구현하는 두 개의 다른 엔티티에서 CRUD 작업에 사용하려는 단일 컨트롤러가 있습니다. Ninject가 URL에 쿼리 문자열 값 (또는 다른 컨트롤러의 동일한 URL로 라우트 된 다른 URL)을 기반으로 다른 저장소를 제공하고 싶습니다. 이것이 가능한가? 내가 어떻게 해? 일반적으로 디자인 냄새입니다하지만 당신은 다음과 같은 바인딩을 정의 할 수 있습니다Ninject 바인딩은 URL/라우트 값을 기반으로 할 수 있습니까?
4
A
답변
7
:
kernel.Bind<IRepo>().ToMethod(ctx =>
{
var a = HttpContext.Current.Request["a"];
if (a == "b")
{
return new RepoA();
}
return new RepoB();
}).InRequestScope();
0
다음에
kernel.Bind<IRepo>().ToMethod(ctx =>
{
var a = HttpContext.Current.Request.RequestContext.RouteData.Values["RouteDateValue"]
if (a != null)
{
return new RepoA(a);
}
return new RepoB();
})
관련 문제
- 1. Mustache의 해시 값을 기반으로 템플릿 부분을 전환 할 수 있습니까?
- 2. web.config의 값을 기반으로 유형을 인스턴스화 할 수 있습니까?
- 3. sqlalchemy에서 열 값을 기반으로 테이블을 조인 할 수 있습니까?
- 4. HTTP 수락 헤더 값을 기반으로 어떻게 라우팅 할 수 있습니까?
- 5. Ninject 웹 응용 프로그램 : 모든 바인딩은 InRequestScope() 여야합니까?
- 6. Ninject Bind를 조건부로 가질 수 있습니까?
- 7. 테마를 기반으로 JavaScript를로드 할 수 있습니까?
- 8. 색인을 기반으로 CSS를 적용 할 수 있습니까?
- 9. Ninject ConstructorArguments를 강력한 이름으로 사용할 수 있습니까?
- 10. 어떻게 asp.net mvc 2와 함께 ninject 2.0을 사용할 수 있습니까?
- 11. Ninject
- 12. JQuery에서 값을 기반으로 입력 노드를 선택할 수 있습니까?
- 13. matlab에있는 값을 기반으로 그래디언트 색상 표를 만들 수 있습니까?
- 14. mySQL - 이전 레코드 값을 기반으로 레코드를 선택할 수 있습니까?
- 15. Ninject에 바인딩은
- 16. 제출 된 값을 기반으로 기본값을 어떻게 설정할 수 있습니까?
- 17. MySQL에서 어떻게 값을 교환 할 수있는 두 개의 필드를 기반으로 행을 그룹화 할 수 있습니까?
- 18. WPF 바인딩은
- 19. int의 비트를 기반으로 배열 요소를 결합/결합 할 수 있습니까?
- 20. WPF 바인딩은 인덱서 속성과 목록 요소를 어떻게 구별 할 수 있습니까?
- 21. 녹아웃 바인딩은
- 22. Ninject 차단 - Ninject 3.0으로 포팅 할 때 변경 사항이 발생했습니다.
- 23. Ninject - 동적으로 하위 도메인을 기반으로 연결 문자열 지정
- 24. 생성자 인수로 필터링 할 Ninject 바인딩 속성
- 25. NInject 규약을 사용할 수 없습니다.
- 26. actionPerformed가 값을 반환 할 수 있습니까?
- 27. 인터페이스 값을 단정 할 수 있습니까?
- 28. Workflow Arguments에 값을 삽입 할 수 있습니까?
- 29. IntConstraintOccurrence에 음수 값을 제공 할 수 있습니까?
- 30. 레이블에 객체 값을 할당 할 수 있습니까?
일종의 유사한 경로에서 특정 값을 얻기 나를 위해 일한 HTTP ://stackoverflow.com/questions/12487200/ninject-injection-based-on-a-route-data-value ... Whadya가 대답을하고 우리는 이것을 vtc라고합니까? (또는 당신이 동의하지 않는 경우, 나는 또한 주석을 제거 할 것입니다) –
이것이 왜 냄새인지 자세히 설명해 주시겠습니까? – JeffreyABecker