2012-11-08 2 views
1

나는 개체 그래프를 해결하기 위해 단결함을 사용하고 있습니다.명명 된 매핑을 사용하는 Unity 해결 매개 변수

public interface ISessionManager 
{ 
} 

public class DefaultSessionManager : ISessionManager 
{ 
} 

public class OnCallSessionManager : ISessionManager 
{ 
} 

와 나는 개체 그래프의 상단에 생성자

public class CustomerService 
{ 
    public class CustomerService(ISessionManager sessionManager) 
    { 
    } 
} 

에 ISessionManager을 활용하는 서비스 클래스가 있습니다. viewmodel 클래스와 데이터 관리자 클래스가 있습니다.

public class ViewModel(CustomerService customerService) 
{ 
} 

public class DataManager(CustomerService customerService) 
{ 
} 

이제 다른 ISessionManager를 사용하여 ViewModel과 DataManager를 해결하고 싶습니다. ViewModel 클래스의 경우 DefaultSessionManagerOnCallSessionManagerDataManager으로 입력하고 싶습니다. 내가 어떻게 할 수 있니?

미리 감사드립니다. 지옥 같은

var container = new UnityContainer(); 

container.RegisterType<ISessionManager, DefaultSessionManager>() 
    .RegisterType<ISessionManager, OnCallSessionManager>("oncall") 
    .RegisterType<CustomerService>() 
    .RegisterType<CustomerService>(
    "oncall", 
    new InjectionConstructor(
     new ResolvedParameter(
     typeof(ISessionManager), 
     "oncall"))) 
    .RegisterType<ViewModel>() 
    .RegisterType<DataManager>(
    new InjectionConstructor(
     new ResolvedParameter(
     typeof(CustomerService), 
     "oncall"))); 

그것의 추악한하지만 트릭을 수행해야합니다 당신이 뭔가를 등록 할 수 있습니다 코드의 구성을 사용

답변

1

.

관련 문제