Ninject でデコレータを使用して一連の責任を宣言したいと思います。
誰もそれをやったことがありますか?
ありがとう。
Ninject でデコレータを使用して一連の責任を宣言したいと思います。
誰もそれをやったことがありますか?
ありがとう。
新しい ninject 2.0 構文では、次の新しい構文でこれを実現できます。
Bind<IEmailSender>().To<LoggingEmailSender>();
Bind<IEmailSender>().To<SmtpClientEmailSender>().WhenInjectedInto<LoggingEmailSender>();
ForMembersOf が ninject 2.0 で削除されたため、自分でこれに遭遇したところ、それがそれを行う方法であることがわかりました
私が質問を正しく理解していると仮定すると、1つのアプローチは次のようなものです。
Bind<IEmailSender>().To<LoggingEmailSender>();
Bind<IEmailSender>().To<SmtpClientEmailSender>().ForMembersOf<LoggingEmailSender>();
LoggingEmailSenderクラスには、次のようなコンストラクターがあります。
LoggingEmailSending(IEmailSender sender)
これにより、デコレータを簡単に取得できるはずです。属性を使用しないと、コンストラクタが1つに制限されることを覚えておいてください。