私は次のセットアップにninject追加しようとしている - BaseControllerにILoggerですパラメータを追加すると、素晴らしい作品、ninjectで子コントローラを変更せずにコントローラのパラメータを受け入れる基本クラスを作成するにはどうすればよいですか?
public class BaseController : Controller
{
protected ILogger Logger {get;}
public BaseController() { Logger = new MyLogger(); }
}
public class Controller1Controller : BaseController { ... }
public class Controller2Controller : BaseController { ... }
....
public class ControllerNController : BaseController { ... }
-
public class BaseController : Controller
{
protected ILogger Logger {get;}
public BaseController(ILogger logger) { Logger = logger; }
}
を今、それはまた、それぞれにコンストラクタを追加する必要があります親クラスにはパラメータのないコンストラクタが存在しないため、子クラスの子クラスは存在しません。
public class Controller1Controller : BaseController {
public Controller1Controller(ILogger logger) : base(logger) { }
}
より多くの依存関係を追加/削除する必要がある場合は、保守上の問題となる可能性があります。さらに、各コントローラに追加されるコードはまったく同じです。
子コントローラを(コンストラクタなしで)そのままにしても、それでもBaseControllerを変更する方法はありますか?
は[ReSharperの](https://www.jetbrains.com/resharper/)などのリファクタリングツールを使用します。 –
[Ninjectの使用に関する質問](http://stackoverflow.com/questions/36221865/questions-about-using-ninject) – NightOwl888