asp.net - Ninject 与 ASP.Net 网络表单和 MVC

标签 asp.net asp.net-mvc webforms ninject

我想在一个结合了 ASP.Net webforms 和 ASP.Net MVC 的项目中使用 Ninject。我正在使用 Ninject 2,但是当我使用 Ninject.Web.Mvc 中的 NinjectHttpApplication 时,当我使用诸如未创建内核的 PageBase 之类的东西时,它会提示。

我在 Global.asax 中有以下内容,但不确定要添加什么。

public class MvcApplication : Ninject.Web.Mvc.NinjectHttpApplication
{
    protected override void OnApplicationStarted()
    {
        AreaRegistration.RegisterAllAreas();
        RegisterRoutes(RouteTable.Routes);
        RegisterAllControllersIn(Assembly.GetExecutingAssembly());
    }

    protected override Ninject.IKernel CreateKernel()
    {
        return new StandardKernel(new ServiceModule());
    }
}

有人在某个地方有这个工作可以分享一些想法或代码吗?

最佳答案

正如 Ruben 所说,我在 Ninject 邮件列表中发布了一条消息:

http://groups.google.com/group/ninject/browse_thread/thread/317fc48387399aa6

简而言之,不幸的是,这实际上是不可能的。但是,使用自定义 PageBase 类,您可以使属性和方法注入(inject)成为可能(来自 Nate Kohari 在 Ninject Mailing List 中的回答):

public abstract class PageBase : Page
{
  public IKernel Kernel { get; private set; }
  public PageBase() { Kernel = ...; }
  public void Page_Init() { Kernel.Inject(this); }
} 

关于asp.net - Ninject 与 ASP.Net 网络表单和 MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3141330/

相关文章:

javascript - 如何使用 Glimpse 找出导致 ASP.NET MVC 应用程序挂起的原因?

css - 如何在 Syncfusion 响应式 MVC 网格中启用滚动

javascript - 在哪里可以找到 Upshot.js 示例和文档?

c# - 从使用很多地方的数据库中删除列时维护实体数据模型?

c# - 错误消息 : Model not picking language-specific resource file

asp.net - Web 控件与 StringBuilder

asp.net - F# 命名空间或模块 'XXXX' 未定义

vb.net - 使用 OWIN/MSAL 的 WebForms 应用未收到授权码

c# - 将html内容保存到数据库

javascript - RadGrid - 从客户端的特定单元格获取对象