我的應用程序有MVC控制器和WebApi控制器。到目前爲止,我已經能夠將控制器之間共享的任何邏輯分別推送到BaseController
和BaseApiController
。在WebApi和MVC控制器之間共享邏輯?
現在我有一種情況,API控制器和MVC控制器都在做同樣的事情 - 註冊一個新的用戶帳戶。這個過程有點複雜,因爲我有一個多租戶應用,看起來是這樣的:
// MVCController : BaseController
public ActionResult Register(RegisterModel model) {
// see if the model is valid
// check and make sure the credentials check out with policy requirements
// add the user to the user table if they aren't already there
// create a tenancy
// assign cookie
}
大多數的實際工作推離到服務層,但通話和條件佔用約20我寧願不復制並粘貼到類似的WebApi控制器中的代碼行。
所以我想知道如果我能以某種方式讓我的BaseController
和BaseApiController
繼承自一個通用控制器,我可以把這個認證代碼。這裏推薦的方法是什麼?
是的,我將賬戶註冊碼拉入另一個班級/界面,以便重新使用它。如果你爲它定義一個接口,你會讓你的代碼更加可測試,並且與控制原理的反轉一致。 –