종속성 해결 프로그램을 사용하고 있으며 동일하게 내 통합 컨테이너를 추가했습니다. 따라서 기본적으로 "GoldCustomer"는 현재 컨테이너 규칙에 따라 "CustomerController"에 주입됩니다.MVC 종속성 해결 프로그램 조건부
IUnityContainer oContainer = new UnityContainer();
oContainer.RegisterType<ICustomer, GoldCustomer>(); // injects GoldCustomer
DependencyResolver.SetResolver(new UnityDependencyResolver(oContainer));
현재 컨테이너 구성으로 변경하려면 항상 새 컨테이너를 만들고 설정하고 SetResolver를 다시 호출 할 수 있습니다. 나는 위의 코드가 XML 설정을 통해 설정 가능해야하지만 여전히 픽스 할 새로운 컨테이너 객체가 필요하다면 여전히 setresolver를 호출해야한다는 것을 알고있다.
이 올바른 방법인가, 아니면 거기 응용 프로그램을 실행하는 동안 컨테이너 depedency 규칙을 변경하는 더 나은 방법.
두 번째 우리가 컨테이너를 변경할 수있는 이벤트는 session_start, httphandler 또는 그보다 나은 것입니다.
나는이 그 답을 생각 HTTP : //stackoverflow.com/questions/15842827/is-it-possible-to-have-multiple-dependency-resolvers-in-asp-net-mvc-3 정적 객체이기 때문에 리졸버 변경은 좋은 생각이 아닙니다. . 서로 다른 조건을 사용하여 해결해야합니다. –
유스 케이스를 이해하지 못했지만 대신 [컨테이너 계층 구조] (http://msdn.microsoft.com/en-us/library/dn507462.aspx)를 사용하고 싶습니까? 해석자를'UnityHierarchicalDependencyResolver'로 설정하고 하나의 루트 컨테이너 만 가질 수 있습니다. 그리고 나서이 해석기에 의해 자동으로 생성 된 하위 컨테이너가 즉석에서 채워질 수 있습니까? – TylerOhlsen