在 ASP.NET MVC 5 的新项目模板中,帐户和管理控制器有 2 个构造函数。
public AccountController()
{
}
public AccountController(ApplicationUserManager userManager, ApplicationSignInManager signInManager)
{
UserManager = userManager;
SignInManager = signInManager;
}
我正在初始化构造函数中的一些属性,最初我对使用哪个属性感到困惑。单步执行代码时,我只看到调用了第一个默认构造函数。
我想知道第二个控制器是否只是我目前没有使用的依赖注入的占位符。或者,当不使用 DI 时,标识是否可以在后台出于其他目的调用它?(我根据通过框架计算,UserManager 和 SignInManager 都已经在 Startup 中构建,因此不需要在第二个构造函数中重新创建它们(。
第一个构造函数的存在是为了不让第二个构造函数覆盖它。我不确定第一个是否对 Asp.Net 身份有一些内部用途,但出于某些原因,他们肯定想保留它,而不是让它被覆盖。