一、Asp.Net MVC是否针对每次请求都重新创建一个控制器实例

默认情况下,答案是确定的。

ControllerBuilder类 ControllerBuilder.Current用户获取默认的控制器工厂DefaultControllerFactory

    //
    // 摘要:
    //     表示默认情况下已注册的控制器工厂。
    public class DefaultControllerFactory : IControllerFactory

获取方式

IControllerFactory factory = ControllerBuilder.Current.GetControllerFactory();

IControllerFactory用户创建和释放Controller

namespace System.Web.Mvc
{
    //
    // 摘要:
    //     定义控制器工厂所需的方法。
    public interface IControllerFactory
    {
        //
        // 摘要:
        //     使用指定的请求上下文来创建指定的控制器。
        //
        // 参数:
        //   requestContext:
        //     请求上下文。
        //
        //   controllerName:
        //     控制器的名称。
        //
        // 返回结果:
        //     控制器。
        IController CreateController(RequestContext requestContext, string controllerName);
        //
        // 摘要:
        //     获取控制器的会话行为。
        //
        // 参数:
        //   requestContext:
        //     请求上下文。
        //
        //   controllerName:
        //     你想要获取器其会话行为的控制器的名称。
        //
        // 返回结果:
        //     控制器的会话行为。
        SessionStateBehavior GetControllerSessionBehavior(RequestContext requestContext, string controllerName);
        //
        // 摘要:
        //     释放指定的控制器。
        //
        // 参数:
        //   controller:
        //     控制器。
        void ReleaseController(IController controller);
    }
}
View Code

相关文章:

  • 2021-10-22
  • 2021-06-12
  • 2022-12-23
  • 2021-04-17
  • 2022-01-01
  • 2022-01-07
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-23
  • 2021-09-28
  • 2021-10-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案