Antwort

13

In der neuen ninject 2.0 Syntax können Sie dies durch die folgende neuere Syntax erreichen:

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

Genau in diese lief mir und fand, dass war der Weg, es zu tun, wie ForMembersOf hat in ninject 2,0

entfernt worden
2

Unter der Annahme, verstehe ich die Frage richtig, ist ein Ansatz, etwas wie folgt aus:

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

Die LoggingEmailSender Klasse würde wie einen Konstruktor etwas haben:

LoggingEmailSending(IEmailSender sender) 

Dies sollten Sie einen Dekorateur erhalten Einfach genug - denken Sie daran, dass Sie ohne Attribute nur auf einen Konstruktor beschränkt sind.