4

Ninject에서 데코레이터를 사용하여 책임의 사슬을 선언하고 싶습니다.Ninject에서 데코레이터를 사용하여 책임의 사슬을 선언하려면 어떻게해야합니까?

누구나 전에 해 보았습니까?

감사합니다. 이것은 당신에게 장식을 얻어야한다

LoggingEmailSending(IEmailSender sender) 

:

Bind<IEmailSender>().To<LoggingEmailSender>(); 
Bind<IEmailSender>().To<SmtpClientEmailSender>().ForMembersOf<LoggingEmailSender>(); 

LoggingEmailSender 클래스는 같은 생성자 뭔가있을 것입니다 : 내가 제대로 질문을 이해하고있어 가정

+1

저는 책임과 장식 자의 사슬이 완전히 다른 디자인 패턴이라는 것을 지적하고자합니다. 아마도이 질문에 답을 얻는 데 어려움을 겪고있는 것입니까? –

답변

13

다음과 같은 새로운 구문하여이 작업을 수행 할 수 있습니다 :

Bind<IEmailSender>().To<LoggingEmailSender>(); 
Bind<IEmailSender>().To<SmtpClientEmailSender>().WhenInjectedInto<LoggingEmailSender>(); 

그냥 이것으로 자신을 실행하고 ForMembersOf이 Ninject에 2.0

에서 제거되었습니다로서 그게 할 수있는 방법이었다 발견
2

는 한 가지 방법은 다음과 같이이다 쉽게 충분히 - 단지 속성을 사용하지 않고, 당신은 단지 하나의 생성자로 제한된다는 것을 기억하십시오. 새로운 Ninject에 2.0 구문에서

관련 문제