2014-03-06 4 views
5

Unity.MVC5와 Unity를 사용합니다.Unity가 종속성을 해결하지 않습니다.

void Application_Start(object sender, EventArgs e) 
{ 
    UnityConfig.RegisterComponents(); 
    GlobalConfiguration.Configure(WebApiConfig.Register); 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
} 

내 컨트롤러 중 하나에서 나는이 같은 속성이 있습니다 :

public static class UnityConfig 
{ 
    public static void RegisterComponents() 
    { 
     var container = new UnityContainer(); 

     container 
      .RegisterType<ILogger, Nlogger>() 
      .RegisterType<IDataAccessLayer, SqlDataAccessLayer>() 
      .RegisterType<IEventBusiness, EventBusiness>(); 

     DependencyResolver.SetResolver(new UnityDependencyResolver(container)); 

    } 
} 

그리고 여기 내 Global.asax에 코드 : 종류와 의존성 해결을 등록 클래스는 다음과 같습니다

[Dependency] 
public IEventBusiness EventBusiness { get; set; } 

이 속성은 Unity에 의해 자동으로 설정되지만 항상 null입니다. 누군가 내가 내가 뭘 잘못하고 있는지 알아낼 수 있습니까?

+0

또한 등록시'InjectionProperty' 설정을 시도해 볼 수도있다. 또는 대신 생성자 주입을 시도해보십시오. – StuartLC

+0

컨트롤러를 컨트롤러에 등록하고 있습니까? – TylerOhlsen

+0

@TylerOhlsen, 아니요. 컨트롤러를 등록하지 않았습니다. 해야합니까? 컨트롤러 내부에서 DependencyResolver.Current를 검사하면 등록 된 모든 유형이있는 UnityContainer의 올바른 인스턴스를 얻을 수 있습니다. – Aref

답변

관련 문제