MVC で Unity IoC をセットアップする方法のサンプルを見ていて、Func のパラメーターを持つアプローチを推奨している人に気付きました。利点は、サービスの遅延読み込みのようなものであり、呼び出されない場合は実行されず、リソースを消費しないことだと思います。
private readonly Func<IUserService> _userService;
public CourseController(Func<IUserService> userService)
{
this._userService = userService;
}
Func のないパラメータとの比較:
private readonly IUserService _userService;
public CourseController(IUserService userService)
{
this._userService = userService;
}
誰かが私に違いを説明できますか、それは本当に効率的ですか?