¿Cómo declaro una cadena de responsabilidad usando decoradores en Ninject?
-
20-08-2019 - |
Pregunta
Me gustaría declarar una cadena de responsabilidad utilizando decoradores en Ninject.
¿Alguien ha hecho eso antes?
Gracias.
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