Pregunta

Me gustaría declarar una cadena de responsabilidad utilizando decoradores en Ninject.

¿Alguien ha hecho eso antes?

Gracias.

¿Fue útil?

Solución

En la nueva sintaxis de ninject 2.0 puede lograr esto mediante la siguiente sintaxis más reciente:

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

Me encontré con esto y descubrí que esa era la forma de hacerlo, ya que ForMembersOf se eliminó en ninject 2.0

Otros consejos

Suponiendo que entiendo la pregunta correctamente, un enfoque es algo como esto:

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

La clase LoggingEmailSender tendría un constructor similar a:

LoggingEmailSending(IEmailSender sender)

Esto debería conseguirte un decorador con la suficiente facilidad; solo recuerda que sin usar atributos, estás limitado a un solo constructor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top