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입니다. 누군가 내가 내가 뭘 잘못하고 있는지 알아낼 수 있습니까?
또한 등록시'InjectionProperty' 설정을 시도해 볼 수도있다. 또는 대신 생성자 주입을 시도해보십시오. – StuartLC
컨트롤러를 컨트롤러에 등록하고 있습니까? – TylerOhlsen
@TylerOhlsen, 아니요. 컨트롤러를 등록하지 않았습니다. 해야합니까? 컨트롤러 내부에서 DependencyResolver.Current를 검사하면 등록 된 모든 유형이있는 UnityContainer의 올바른 인스턴스를 얻을 수 있습니다. – Aref