2017-08-15 48 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的內部使用,但是肯定他們想保留這個,出於某些原因,不要讓它被覆蓋。

相關問題