asp.net-mvc - MVC 基础 Controller 和 Ninject

标签 asp.net-mvc ninject

我正在现有的 MVC 2 应用程序中实现 Ninject 依赖项注入(inject),该应用程序使用所有 Controller 继承的基本 Controller 来设置母版页所需的导航和其他信息。当我将 Controller 设置为从基本 Controller 继承时,出现以下错误:“...BaseController' 不包含采用 0 个参数的构造函数。如何解决此错误?我是 Ninject 新手,可以”弄清楚这一点。

public class BaseController : Controller
    {
        private INavigationRepository navigationRepository;
        private ISessionService sessionService;


        public BaseController(INavigationRepository navigationRepository, IMembershipService membershipService, ISessionService sessionService)
        {
            this.navigationRepository = navigationRepository;
            this.sessionService = sessionService;
        }
    }


 public class HomeController: BaseController
    { ... }

最佳答案

添加该 ctor 是一种方法

public class HomeController: BaseController
{
    public HomeController(INavigationRepository navigationRepository, IMembershipService membershipService, ISessionService sessionService)
    : base(navigationRepository, membershipService, sessionService) { }

}

或属性注入(inject)

public class BaseController : Controller
{
    [Inject]
    public INavigationRepository navigationRepository { get; set; }
    [Inject]
    public ISessionService sessionService { get; set; }


}

关于asp.net-mvc - MVC 基础 Controller 和 Ninject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4291989/

相关文章:

asp.net-mvc - razor - 获取部分列表

html - 在 MVC 应用程序的页面加载时设置页面滚动位置

asp.net-mvc - 我们是否应该直接在 asp net mvc View 中执行 LINQ

c# - 没有服务定位器的领域事件

c# - 依赖注入(inject)

asp.net-mvc - 上传包含在 MVC 模型中的图像

c# - ASP.NET MVC 5 : App Pool, Windows 身份验证和 Active Directory

c# - 存储库/UoW - 使用还是不使用?

c# - 带有 Ninject 拦截、CaSTLe DynamicProxy 和 WPF 窗口的 AOP : Can't find XAML resource in DynamicProxy of window

Ninject、Providers 和 Activator.CreateInstance