我正在查看如何使用 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;
}
有人可以向我解释这些差异,它真的更有效吗?