Asp.net mvc 5 MVC Ninject:如何从MVC区域项目添加Ninject绑定

Asp.net mvc 5 MVC Ninject:如何从MVC区域项目添加Ninject绑定,asp.net-mvc-5,asp.net-mvc-areas,ninject.web.mvc,modular-design,Asp.net Mvc 5,Asp.net Mvc Areas,Ninject.web.mvc,Modular Design,我一直在使用这个博客示例: 我的解决方案中包含了这些概念。然而,我试图找出一种好方法,仅当用户有权访问模块/区域时,才向内核添加绑定 我读过一些关于ServiceLocator的文章,但我试图远离它 我正在尝试的一件事就是在模块的默认构造函数中注入用户构造函数。它正在工作,但是一个黑客 我使用的模式是,您创建的每个模块项目都有一个从AreaRegion继承的类。构建每个模块项目时,相关文件将复制到主web项目的Areas文件夹中。然后,当加载主项目时,反射将用于加载所有模块程序集。然后,当调用

我一直在使用这个博客示例:

我的解决方案中包含了这些概念。然而,我试图找出一种好方法,仅当用户有权访问模块/区域时,才向内核添加绑定

我读过一些关于ServiceLocator的文章,但我试图远离它

我正在尝试的一件事就是在模块的默认构造函数中注入用户构造函数。它正在工作,但是一个黑客

我使用的模式是,您创建的每个模块项目都有一个从AreaRegion继承的类。构建每个模块项目时,相关文件将复制到主web项目的Areas文件夹中。然后,当加载主项目时,反射将用于加载所有模块程序集。然后,当调用AreaRegistration.RegisterAlareas()时,它会检测并加载所有模块,其中包含一个继承AreaRegistration的类

我想找出一种访问Ninject内核并在继承自AreaRegistration的模块类中添加绑定的好方法。我可以想象启动代码以从RegisterArea()覆盖添加绑定

我正在寻找关于如何在不使用ServiceLocator的情况下执行此操作的任何建议


如果您有任何想法,我将不胜感激。

目前我找到了一个更好的解决方案,那就是使用Ninject模块。在Plugin类中,我将创建一个从NinjectModule继承的类。然后在Load重载中设置插件绑定

然后在我的主应用程序引导程序中使用Kernel.Load初始化从NinjectModule继承的所有插件类中的负载重载