.net 项目中控制器的范围是什么?
What is the scope of the controllers in .net project?
我创建了一个新的 web api 项目,并且还有带有 GET 方法的 WeatherForecast 控制器。
我想问-控制器的范围是什么class?
因为我没有找到控制器的任何依赖注入设置,默认情况下是单例还是作用域?
自从 ASP.NET MVC 1.0 以来,所有 ASP.NET 堆栈中控制器的范围是请求 - ASP.NET 中间件创建一个新的控制器实例来处理每个请求。
ASP.NET 核心中间件管道是 pretty deep though,控制器实例仅在最后阶段在 Endpoint
中间件中创建。
它们的控制器和处理请求的操作是端点管道中的 User Code
框
您必须假设控制器将在操作方法处理完请求后很快被释放。在那之后从任何其他 class 访问控制器实例都是不安全的,即使是其他作用域 classes.
如果你想共享数据,你必须将它存储在其他地方,例如会话、缓存、使用常见的选项对象、单例字典(本质上是缓存)、数据库等。
我创建了一个新的 web api 项目,并且还有带有 GET 方法的 WeatherForecast 控制器。
我想问-控制器的范围是什么class?
因为我没有找到控制器的任何依赖注入设置,默认情况下是单例还是作用域?
自从 ASP.NET MVC 1.0 以来,所有 ASP.NET 堆栈中控制器的范围是请求 - ASP.NET 中间件创建一个新的控制器实例来处理每个请求。
ASP.NET 核心中间件管道是 pretty deep though,控制器实例仅在最后阶段在 Endpoint
中间件中创建。
它们的控制器和处理请求的操作是端点管道中的 User Code
框
您必须假设控制器将在操作方法处理完请求后很快被释放。在那之后从任何其他 class 访问控制器实例都是不安全的,即使是其他作用域 classes.
如果你想共享数据,你必须将它存储在其他地方,例如会话、缓存、使用常见的选项对象、单例字典(本质上是缓存)、数据库等。