2013-07-25 6 views
0

나는 Handler 클래스를 가지고 있습니다. 생성자에는 다른 설정에 따라 Manager 클래스가 있습니다.부모 클래스에 따라 달라지는 방법

kernel.Bind<IHandler>().To<Handler>(). 
       WithConstructorArgument("manager", 
       new Manager(kernel.Get<IDataAccessFactory>().CreateUnitOfWork(), new Custom1Settings())); 

어떻게 Handler

class Handler 
{ 
    Handler(IManager manager....) 
    { 
     ... 
    } 
} 

class Manager 
{ 
    Manager(IUnitOfWork unit, ISettings settings) 
    { 
     ... 
    } 
} 

답변

0
kernel.Bind<IManager>().To<Manager>().Named("Registration").WithConstructorArgument("settings", new Custom1Settings()); 

kernel.Bind<IHandler>().To<Handler>().WithConstructorArgument("manager", ctx => ctx.Kernel.Get<IManager>("Registration")); 
0

Ninject가 자동으로 의존성을 파악에 Manager에서 Custom1Settings에 주입하는 만듭니 까. 그 중 하나가 가장 유용한 기능입니다.

Custom1SettingsManager에 대한 바인딩을 정의하면 자동으로 삽입됩니다.

그래서

kernel.Bind<IManager>().To<Manager>(); 
kernel.Bind<ICustom1Settings>().To<Custom1Settings>(); 
+0

I이 사용하려는 않는 – Mediator

+1

좋아 ICustom1Settings, 두 가지 구현? –

관련 문제