我有一個繼承了另一個控制器一BaseController,不能繼承基控制器類沒有默認的構造函數
BaseController:
public partial class BaseController : Controller
{
private readonly IUnitOfWork _uow;
private readonly INewsService _newsService;
protected BaseController(IUnitOfWork uow, INewsService newsService)
{
_uow = uow;
_newsService = newsService;
}
//...
}
控制器之一:
public partial class HomeController : BaseController
{
private readonly IUserService _userService;
private readonly IMemberService _memberService;
private readonly IUnitOfWork _uow;
public HomeController(IUnitOfWork uow, IUserService userService, IMemberService memberService, INewsService newsService): base(uow, newsService)
{
_userService = userService;
_memberService = memberService;
_uow = uow;
}
//...
}
但我在t4mvc生成的類中爲每個控制器獲取此錯誤,例如,此錯誤:
'MvcApp.Controllers.BaseController' does not contain a constructor that takes 0 arguments.
in HomeController.generated.cs
file。
SOLUTION
https://stackoverflow.com/a/15320890/1719207
我使用StructureMap,我重寫了默認的控制器工廠。 我在編譯時遇到這個錯誤,而不是在運行時。 – user197508 2013-03-09 17:49:32
我敢打賭,你也可以在運行時獲得它:) – Jon 2013-03-09 17:52:46
你安裝了SM MVC包嗎? http://nuget.org/packages/StructureMap.MVC3/ – Jon 2013-03-09 17:53:41