2017-08-15 34 views
0

在用于ASP.NET MVC 5的新项目模板中,有2个用于Account和Manage控制器的构造函数。Asp.Net中的2个构造函数Identity AccountController

public AccountController() 
    { 
    } 

public AccountController(ApplicationUserManager userManager, ApplicationSignInManager signInManager) 
    { 
     UserManager = userManager; 
     SignInManager = signInManager; 
    } 

我正在初始化构造函数中的一些属性,我最初混淆了使用哪一个。在遍历代码时,我看到只有第一个默认的构造函数被调用过。

我想知道第二个控制器是否只是依赖注入的占位符,目前我没有使用它。或者在不使用DI的情况下,Identity可以在后台为其他目的调用它? (我是基于通过框架来计算的,UserManager和SignInManager已经在Startup中构建,所以不需要在第二个构造函数中重新创建它们)。

+0

我只有用不完第二,参数化,控制器。我甚至不包括默认的构造函数。是的,这些服务在Startup.cs中注册并且不在这里创建,它们仅在此处注入。 – nurdyguy

+0

嗯,我还没有说服..其实我只是在玩它,看到“没有无参数的构造函数定义为这个对象。”错误,当我没有包括它。 – Turo

+0

这是一个非常值得信赖的来源例如:https://github.com/IdentityServer/IdentityServer4.Quickstart.UI/blob/release/Quickstart/Account/AccountController.cs – nurdyguy

回答

0

第一个构造函数在那里不让第二个覆盖它。我不确定第一个用户是否有Asp.Net Identity的内部使用,但是肯定他们想保留这个,出于某些原因,不要让它被覆盖。