Asp.net mvc 3 使用构造函数继承基本控制器

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){

我正在使用ninject注入我的存储库。我希望有一个我的基类被继承,但我不能,因为它有一个构造函数

基本控制器:

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放在每个控制器上,它只需继承它即可。