2012-07-19 4 views
0

Unity에 익숙하지 않다는 말로 머리말을 붙이십시오. 나는 이것이 의존성 주입 컨테이너라는 것을 이해하며 그것이 의미하는 것을 제한된 정도로 이해합니다. Unity를 사용하는 응용 프로그램은 상속 받았지만 제대로 구현되지 않았습니다.UnityManager를 세션에 저장하기

var unity = new UnityManager(new UnityContainer()); 
Session["UnityManager"] = unity; 

내가이 본질적으로 동시성 문제가 발생하지 것입니다 알고있는 것처럼 : 이전 개발자가 다음 단일 개체를 인스턴스화하려면 다음 코드를 사용하여 전체 세션을 통해 지속 global.asasession_start에서? 누구든지 올바르게 화합을 구현하는 방법의 예를 제공 할 수 있습니까, 아니면 이것이 올바른지 나에게 설명하는 것이 올바른 이유는 무엇입니까?

+0

http://weblogs.asp.net/shijuvarghese/archive/2011/01/21/dependency-injection-in-asp-net-로 대체 할 수있다 mvc-3-dependencyresolver-and-controlleractivator.aspx 사용 – jrummell

답변

0

mvc를 사용하는 경우 세션을 제거하고 nuget 패키지 관리자에서 unity.mvc3을 설치할 수 있습니다. 그것은 mvc4와 호환되며 모든 것을 올바른 방식으로 설정합니다. bootstrapper.cs (자동 설치됨)에 기존 매핑을 넣을 수 있습니다.

기본적으로 global.asax에 1 개의 정적 변수를 지정하여 단일성에 액세스하려고합니다. 그래서 당신은 모든

var unitycontainer = Session["UnityManager"]; 
unitycontainer.resolve<>... 

MVCApplication.Container.Resolve<> ..