Asp.net mvc 3 使用构造函数继承基本控制器
我正在使用ninject注入我的存储库。我希望有一个我的基类被继承,但我不能,因为它有一个构造函数 基本控制器:Asp.net mvc 3 使用构造函数继承基本控制器,asp.net-mvc-3,ninject,ninject.web.mvc,Asp.net Mvc 3,Ninject,Ninject.web.mvc,我正在使用ninject注入我的存储库。我希望有一个我的基类被继承,但我不能,因为它有一个构造函数 基本控制器: namespace Orcha.Web.Controllers { public class BaseController : Controller { public IRepository<string> db; public BaseController(Repository<string> db){
namespace Orcha.Web.Controllers
{
public class BaseController : Controller
{
public IRepository<string> db;
public BaseController(Repository<string> db){
this.db = db;
Debug.WriteLine("Repository True");
}
}
}
C#要求如果基类没有默认构造函数,则必须向派生类添加构造函数。例如
public class HomeController : BaseController
{
public HomeController(IRepository<string> db) : base(db) { }
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
}
公共类HomeController:BaseController
{
公共家庭控制器(IRepository db):基本(db){}
公共行动结果索引()
{
ViewBag.Message=“欢迎使用ASP.NET MVC!”;
返回视图();
}
关于()的公共行动结果
{
返回视图();
}
}
如果您具有所需的绑定,则Ninject将提供依赖项:
Bind<IRepository<string>>().To<Repository<string>();
Bind().ToC#要求如果基类没有默认构造函数,则必须向派生类添加构造函数。例如
public class HomeController : BaseController
{
public HomeController(IRepository<string> db) : base(db) { }
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
}
公共类HomeController:BaseController
{
公共家庭控制器(IRepository db):基本(db){}
公共行动结果索引()
{
ViewBag.Message=“欢迎使用ASP.NET MVC!”;
返回视图();
}
关于()的公共行动结果
{
返回视图();
}
}
如果您具有所需的绑定,则Ninject将提供依赖项:
Bind<IRepository<string>>().To<Repository<string>();
Bind()。这似乎是多余的。存储库的要点是不必将IRepository放在每个控制器上,它只会继承它。这似乎是多余的。存储库的要点是不必将IRepository放在每个控制器上,它只需继承它即可。