클래스에 대한 모든 종속성을 해결할 MainFactory를 만들었지 만 생성자 매개 변수를 자동으로 확인하기 위해 Ninject를 사용하고 싶습니다.Ninject가 ToMethod 바인딩을 해결합니다.
그래서, 나는 내가 ILoggerContainer에 따라 뭔가 바인딩있을 때, 난을 해결하기 위해 방법을 지정해야하므로
kernel.Bind<ILoggerContainer>().ToMethod(m => MainFactory.CreateLoggerContainer());
하지만, 같은 내 공장의 메소드에 대한 인터페이스를 결합하기 위해 노력하고있어 이 같은 다른 컨테이너
kernel.Bind<IUsersContainer>().ToMethod(m => MainFactory.CreateUsersServiceContainer(kernel.Get<ILoggerContainer>()));
이제 Ninject의 주요 목표는 이러한 종속성을 자동으로 해결하는 것이므로 특히 더 나은 방법이라고 확신합니다.
편집 : MainFactory 종속성 변경, 난 단지 그 DLL을 업데이트해야하는 경우, 따라서 모든 종속성을 포함하는 별도의 프로젝트입니다.
내가 매개 변수로 인터페이스의 구현을 위해 생성자를 설정할 수 있도록 Ninject에 사용됩니다, 그것은
의 주요 문제는 내가이
kernel.Bind<IUsersContainer>().ToMethod(m => MainFactory.CreateUsersServiceContainer(kernel.Get<ILoggerContainer>()));
을 어떻게 할 수 있었다, 자동으로 설정됩니다 이
kernel.Bind<IUsersContainer>().ToMethod(m => MainFactory.CreateUsersServiceContainer());
노트 같은에
는 CreateUsersServiceContainer의 매개 변수를 제거하고 나는 Ninject에이 t과의 매개 변수를 채울 수 있으리라 믿고있어 그는 적절한 가치 (이미 Ninject에 묶여 있음)
, 난 당신이 옳을 수도있을 것 같군요 MainFactory를 적절한 Bindings로 대체 할 때, 나는 필요하다면 AOP 데코레이터를 추가하기 위해 디자인을 열어두기를 원했다. – user579889