gpt4 book ai didi

asp.net-mvc - Ninject 如何在 ASP.NET MVC 中创建 Controller ?

转载 作者:行者123 更新时间:2023-12-03 02:20:55 26 4
gpt4 key购买 nike

这可能是个愚蠢的问题,但我正在查看 Ninject 源代码,但没有看到 NInject 注册自己的 Controller 工厂。我在 Ninject.Web.Mvc 程序集中也没有看到任何 IControllerFactory 类。我错过了什么吗? Ninject 如何创建 Controller 并将参数注入(inject)构造函数?

最佳答案

  1. 假设我们正在寻找“/Task/Index”。
  2. Ninject MVC 应用程序现在使用 DefaultControllerFactory,与非 Ninject 应用程序相同。
  3. DefaultControllerFactory 查找 Controller (TaskController) 的类型。
  4. DefaultControllerFactory 有一个名为 DefaultControllerActivator 的内部类。 DefaultControllerActivator 有一个名为 Create 的方法,它返回 Controller 实例。 DefaultControllerFactoryDefaultControllerActivator 请求 TaskController 类型实例。
  5. DefaultControllerActivator.Create 使用IDependencyResolver。这就是 Ninject 发挥作用的地方。由于 Ninject 实现了自己的解析器并在应用程序启动时设置它,因此他收到对 TaskController 实例的请求。
  6. 剩下的就很简单了。 Ninject 找到该类型的构造函数,注入(inject)参数,返回 Controller 实例。

关于asp.net-mvc - Ninject 如何在 ASP.NET MVC 中创建 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018810/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com