0

MVC 컨트롤러에 대한 Contructor 삽입 된 paraeters를 확인하는 데 사용되는 단일 컨테이너의 참조를 가져올 수 있습니까?MVC 컨트롤러 액션에서 Unity 컨테이너 참조 가져 오기

우리는 클래스를 사용하기 때문에 현재 사용되는 컨테이너에 대한 참조가 필요합니다.

MvcApplication 클래스의 Application_Start() 처리기 중에 등록 된 참조를 MvcApplication 클래스의 속성에 저장하여 저장하려고하지만 나중에 컨트롤러에서 액세스하려고하면 null입니다.

컨테이너는과 같이 등록 :

DependencyResolver.SetResolver(new UnityDependencyResolver(CurrentUnityContainer)); 

CurrentUnityContainer

그런 다음 MvcApplication 클래스의 비 정적 속성이 있음을 제공, 컨트롤러에서 우리는 현재 MvcApplication에 액세스하여 그것을 얻으려고 예 :

MvcApplication.Instance.CurrentUnityContainer 

컨테이너가 컨트롤러에서 null이거나 다른 방식으로 가져 오는 이유는 무엇입니까?

답변

0

System.Web.Mvc.DependencyResolver.Current 정적 속성을 통해 종속성 해결 프로그램에 액세스 할 수 있습니다.

하지만 Service Locator 안티 패턴에 대해 알고 있어야합니다.

+0

죄송합니다. 컨테이너 (IUnityContainer)가 필요하거나 상당히 많은 레거시 코드를 리팩토링해야합니다. –

+0

당신은 캐스트하려고 :'var currentUnityContainer = System.Web.Mvc.DependencyResolver.Current UnityDependencyResolver;'? –

관련 문제